contoh OUTPUTnya ada dibawah ini :
Dan buat kodingnya ada dibawah ini :
#include
#include
#include
struct node{
int info;
struct node *next;
};
typedef struct node *simpul;
void main()
{
simpul baru, head=NULL, tail=NULL, temp, prev;
int pilih, data, cari, hapus;
char jwb;
clrscr();
do
{
printf("\n");
printf("=====================\n");
printf("| PROGRAM LINK LIST |\n");
printf("=====================\n");
printf("| 1. Insert |\n");
printf("| 2. View |\n");
printf("| 3. Search |\n");
printf("| 4. Delete |\n");
printf("| 5. keluar |\n");
printf("=====================\n");
printf("| PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
printf("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL; //tidak menuju simpul mana2
if (head == NULL) //khusus simpul pertama LL
{
head = baru; //pointer head, tail, baru sama
tail = baru;
}
else //untuk simpul2 berikutnya
{
tail->next = baru; //sambungkan di belakang
tail = baru;
}
break;
case 2:
temp = head; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->next; //geser temp ke belakang
}
printf("\n");
break;
case 3:
printf("Cari Angka: ");
scanf("%i", &cari);
temp = head;
while((temp!=NULL)&&(temp->info!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->info == cari)
printf("Data Ditemukan");
else //if(temp == NULL)
printf("Data Tidak Ditemukan");
printf("\n");
break;
case 4:
printf("Hapus Angka: ");
scanf("%i", &hapus);
temp = head;
while((temp!=NULL)&&(temp->info!=hapus))
{
//prev selalu berada 1 simpul di belakang temp
prev = temp;
temp = temp->next;
}
if(temp != NULL && temp->info == hapus)
{
printf("Yakin Dihapus? (y/t) \n");
flushall();
jwb=getch();
if(jwb == 'y')
{
//jika hapus simpul di tengah
if(temp->next != NULL && temp != head)
prev->next = temp->next;
//jika hapus di depan dan tinggal 1 simpul
else if (temp == head && head->next == NULL)
{
head = NULL;
}
//jika hapus di depan tapi masih ada simpul berikutnya
else if (temp == head && head->next != NULL)
{
head = head->next;
}
//jika hapus di belakang
else if (temp->next == NULL)
{
prev->next = NULL;
tail = prev;
}
free(temp); //hapus dr memori
}
else
printf("| Penghapusan Dibatalkan |\n");
printf("\n");
}
else
printf("| Data Tidak Ditemukan |\n");
printf("\n");
break;
}
}while (pilih!=5);
getch();
return 0;
}
___Semoga Postingan ini bermanfaat untuk anda___
---====nothing is impossible in this world====---
0 komentar:
Posting Komentar