#include #include struct NODE { int number; struct NODE *next; }; void append_node(struct NODE *llist, int num); int search_value(struct NODE *llist, int num); void display_list(struct NODE *llist); int main(void) { int num = 0; int input = 5; int retval = 0; struct NODE *llist; llist = (struct NODE *)malloc(sizeof(struct NODE)); llist->number = 0; llist->next = NULL; while(input !=0) { printf("\n===== Pilih Menu =====\n"); printf("0: Keluar\n"); printf("1: Insert\n"); printf("2: Search\n"); printf("3: Tampilkan\n"); printf("\nPilihan: ");scanf("%d", &input); if(input==0) { printf("...Terimakasih...\n"); } else if(input==1) { printf("Anda Memilih: 'Insert'\n"); printf("Masukkan Nilai Yang Akan di Insert: "); scanf("%d", &num); append_node(llist, num); } else if(input==2) { printf("Anda Memilih: 'Search'\n"); printf("Masukkan Nilai Yang Akan di Cari (Search): "); scanf("%d", &num); if((retval = search_value(llist, num)) == -1) printf("Value '&d' not found\n", num); else printf("Value '%d' located at position '%d'\n", num,retval); } else if(input==3) { printf("Anda Memilih: 'Tampilkan;\n"); display_list(llist); } } free(llist); return(0); } void append_node(struct NODE *llist, int num) { while(llist->next != NULL) llist = llist->next; llist->next = (struct NODE *)malloc(sizeof(struct NODE)); llist->next->number = num; llist->next->next = NULL; } int search_value(struct NODE *llist, int num) { int retval = -1; int i = 1; while(llist->next !=NULL) { if(llist->next->number == num) return i; else i++; llist = llist->next; } return retval; } void display_list(struct NODE *llist) { while(llist->next !=NULL) { printf("%d ", llist->number); llist = llist->next; } printf("%d", llist->number); }