Advertisement
albertoanggi

STRUKTUR DATA - PERTEMUAN 2

Oct 12th, 2017
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct NODE
  5. {
  6.     int number;
  7.     struct NODE *next;
  8. };
  9.  
  10.     void append_node(struct NODE *llist, int num);
  11.     int search_value(struct NODE *llist, int num);
  12.     void display_list(struct NODE *llist);
  13.  
  14.  
  15.     int main(void)
  16.     {
  17.         int num = 0;
  18.         int input = 5;
  19.         int retval = 0;
  20.         struct NODE *llist;
  21.    
  22.         llist = (struct NODE *)malloc(sizeof(struct NODE));
  23.         llist->number = 0;
  24.         llist->next = NULL;
  25.    
  26.         while(input !=0)
  27.         {
  28.             printf("\n===== Pilih Menu =====\n");
  29.             printf("0: Keluar\n");
  30.             printf("1: Insert\n");
  31.             printf("2: Search\n");
  32.             printf("3: Tampilkan\n");
  33.             printf("\nPilihan: ");scanf("%d", &input);
  34.    
  35.             if(input==0)
  36.             {
  37.                 printf("...Terimakasih...\n");
  38.             }
  39.             else if(input==1)
  40.             {
  41.                 printf("Anda Memilih: 'Insert'\n");
  42.                 printf("Masukkan Nilai Yang Akan di Insert: ");
  43.                 scanf("%d", &num);
  44.                 append_node(llist, num);
  45.             }
  46.             else if(input==2)
  47.             {
  48.                 printf("Anda Memilih: 'Search'\n");
  49.                 printf("Masukkan Nilai Yang Akan di Cari (Search): ");
  50.                 scanf("%d", &num);
  51.                 if((retval = search_value(llist, num)) == -1)
  52.                     printf("Value '&d' not found\n", num);
  53.                 else
  54.                     printf("Value '%d' located at position '%d'\n", num,retval);
  55.             }
  56.             else if(input==3)
  57.             {
  58.                 printf("Anda Memilih: 'Tampilkan;\n");
  59.                 display_list(llist);
  60.         }   }
  61.  
  62.         free(llist);
  63.         return(0);
  64.     }
  65.  
  66.     void append_node(struct NODE *llist, int num)
  67.     {
  68.         while(llist->next != NULL)
  69.             llist = llist->next;
  70.  
  71.             llist->next = (struct NODE *)malloc(sizeof(struct NODE));
  72.             llist->next->number = num;
  73.             llist->next->next = NULL;
  74.     }
  75.  
  76.     int search_value(struct NODE *llist, int num)
  77.     {
  78.         int retval = -1;
  79.         int i = 1;
  80.    
  81.         while(llist->next !=NULL)
  82.         {
  83.             if(llist->next->number == num)
  84.                 return i;
  85.             else
  86.                 i++;
  87.      
  88.             llist = llist->next;
  89.         }
  90.    
  91.     return retval;
  92.     }
  93.  
  94.     void display_list(struct NODE *llist)
  95.     {
  96.         while(llist->next !=NULL)
  97.         {
  98.             printf("%d ", llist->number);
  99.             llist = llist->next;
  100.         }
  101.    
  102.         printf("%d", llist->number);
  103.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement