#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct node{
int info;
struct node *next;
};
typedef struct node *simpul;
void main()
{
simpul baru, head=NULL, tail=NULL, temp, prev;
int pilih, hapus, cari, data;
char jwb;
system("clear");
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;
if (head == NULL)
{
head = baru;
tail = baru;
}
else
{
tail->next = baru;
tail = baru;
}
break;
case 2:
temp = head;
while(temp!=NULL)
{
printf("%i ", temp->info);
temp = temp->next;
}
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 yang 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 = temp;
temp = temp->next;
}
if(temp != NULL && temp->info == hapus)
{
printf("Yakin dihapus? (y/t) \n");
_flushall;
jwb=getch();
if(jwb == 'y')
{
if(temp->next != NULL && temp != head)
prev->next = temp->next;
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
head = head->next;
}
else if (temp->next == NULL)
{
prev->next = NULL;
tail=prev;
}
free(temp);
}
else
printf("| Penghapusan dibatalkan |\n");
printf("\n");
}
else
printf("| Data tidak ditemukan |\n");
printf("\n");
break;
}
}while (pilih!=5);
return 0;
getch();
}
Like this:
Like Loading...
Related