• Tidak ada hasil yang ditemukan

Think Different Tugs senin ASD: Code Linked List code linked list

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Tugs senin ASD: Code Linked List code linked list"

Copied!
4
0
0

Teks penuh

(1)

#include <stdio.h> #include <conio.h> #include <stdlib.h>

//========================================================

struct node { int data;

struct node *next; };

typedef struct node node;

node *createNode(void);

void tambahAwal(node **head); void tambahData(node **head); void tranverse(node *head);

void insertNode(node **head, node *pPre, node *pNew); void deleteNode(node **head, node *pPre, node *pCur); void hapusData(node **head);

void deleteList(node *head);

//========================================================

void main() {

node *head; char pilih;

head = NULL; do{

clrscr();

printf("masukkan pilihan\n");

printf("1. tambah data di awal\n");

printf("2. tambah data di tengah list\n"); printf("3. hapus data\n");

printf("4. cetak isi list\n");

printf("MASUKKAN PILIHAN (tekan q untuk keluar) : "); fflush(stdin);

scanf("%c", &pilih); if (pilih == '1')

tambahAwal(&head); else if (pilih == '2')

tambahData(&head); else if (pilih == '3')

hapusData(&head); else if (pilih == '4'){ tranverse(head); getch();

}

} while (pilih != 'q'); deleteList(head);

}

//========================================================

(2)

ptr = (node *)malloc(sizeof(node)); return(ptr);

}

//========================================================

void tambahAwal(node **head){ int bil;

node *pTemp;

clrscr(); fflush(stdin);

printf("masukkan bilangan integer : "); fflush(stdin);

scanf("%d", &bil);

pTemp = (node *)malloc(sizeof(node));

if (pTemp != NULL){

pTemp->data = bil; pTemp->next = NULL;

insertNode(head, NULL, pTemp); }

else{

printf("Alokasi memori gagal"); getch();

} }

//========================================================

void tambahData(node **head){ int pos, bil;

node *pTemp, *pCur;

clrscr();

tranverse(*head);

printf("\nposisi penyisipan setelah data bernilai : "); fflush(stdin);

scanf("%d", &pos);

printf("\nData yang disisipkan : "); fflush(stdin);

scanf("%d", &bil);

pCur = *head;

while (pCur != NULL && pCur -> data != pos) { pCur = pCur -> next;

}

pTemp = (node *)malloc(sizeof(node));

if (pCur == NULL){

printf("\nnode tidak ditemukan"); getch();

}

else if (pTemp == NULL){

printf("\nalokasi memeori gagal"); getch();

(3)

else{

pTemp->data = bil; pTemp->next = NULL;

insertNode(head, pCur, pTemp); }

}

//========================================================

void tranverse(node *head){ //traverse a linked list

node *pWalker;

clrscr();

pWalker = head;

while (pWalker != NULL){

printf("%d->", pWalker -> data); pWalker = pWalker -> next;

}

printf("NULL"); }

//========================================================

void insertNode(node **head, node *pPre, node *pNew){ if (pPre == NULL){

//add before first logical node or to an empty list pNew -> next = *head;

*head = pNew; }

else {

//add in the middle or at the end pNew -> next = pPre -> next; pPre -> next = pNew;

} }

//========================================================

void deleteNode(node **head, node *pPre, node *pCur) {

if (pPre == NULL)

*head = pCur -> next; else

pPre -> next = pCur -> next; free(pCur);

}

//========================================================

void hapusData(node **head) {

int pos;

node *pCur, *pPre;

clrscr();

tranverse(*head);

(4)

fflush(stdin); scanf("%d", &pos);

pPre = NULL; pCur = *head;

//search until the target value is found or the end of the list is reached

while (pCur != NULL && pCur -> data != pos) { pPre = pCur;

pCur = pCur -> next; }

if (pCur == NULL){

printf("\nnode tidak ditemukan"); getch();

} else

deleteNode(head, pPre, pCur); }

//========================================================

void deleteList(node *head){ node *pTemp;

while(head != NULL){ pTemp = head; head = head->next; free(pTemp);

Referensi

Dokumen terkait

Karena medan sambungan dari simpul sebelum simpul yang dihapus harus terhubung ke simpul berikutnya dari simpul yang dihapus, maka harus ada pointer bantuan

Strategi ini bertujuan untuk mendapatkan keuntungan lebih melalui penekanan biaya produksi dengan menemukan pemasok alternatif sehingga harga bahan baku

Dapat disimpulkan bahwa aktivitas fisik high sangat menguras energi sehingga glukosa yang dibakar menjadi energi sebesar 31,96 %.Sedangkan pada orang normal dengan

Oleh karena itulah maka penelitian yang dilakukan ini akan mengembangkan suatu sistem yang dapat melakukan pengaturan Basis Data untuk kedua model yaitu : MySQL dan SQL

Penulis menyadari banyak pihak yang telah membantu dalam penyusunan makalah ini.. Maka dengan rendah hati, penulis

Berdasarkan hasil uji antiseptik dengam metode replika didapatkan hasil bahwa gel ekstrak daun cabe rawit memiliki efektivitas sebagai gel antiseptik dilihat dari

Dengan mengikuti training SW 03, Anda diharapkan dapat menggunakan software AnswerTree yang memiliki berbagai metode analisis untuk melakukan prediksi

Justru siraman eksudat akar dari segawe menunjukkan pengaruh positif terhadap pertumbuhan tanaman kakao yang ditunjukkan pada peningkatan jumlah daun, tinggi