akevintg

Queue Using Single Linked List

Mar 25th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.40 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<Windows.h>
  3. #include<conio.h>
  4.  
  5. void menu();
  6. void enque();
  7. void deque();
  8. void view();
  9.  
  10. char pilih;
  11.  
  12. struct data{
  13.     int angka;
  14.     struct data *next;
  15. }*head=0,*curr,*tail=0;
  16.    
  17. int main(){
  18.     menu();
  19. }
  20.  
  21. void menu(){
  22.     system("cls");
  23.     printf("Main MENU\n===========================\n");
  24.     printf("1. Enque\n2. Deque\n3. Display\n4. Exit\nMasukan Input : ");
  25.     pilih=_getch();fflush stdin;
  26.     switch(pilih){
  27.     case '1':
  28.         enque();
  29.         break;
  30.     case '2':
  31.         deque();
  32.         break;
  33.     case '3':
  34.         view();
  35.         break;
  36.     case '4':
  37.         break;
  38.     default :
  39.         menu();
  40.         break;
  41.     }
  42. }
  43.  
  44. void enque(){
  45.     system("cls");
  46.     curr=(struct data*)malloc(sizeof(data));
  47.     printf("Masukan Angka : ");
  48.     scanf("%d",&curr->angka);fflush stdin;
  49.     if (head==0){
  50.         curr->next=0;
  51.         head=tail=curr;
  52.     }
  53.     else {
  54.         tail->next=curr;
  55.         curr->next=0;
  56.         tail=curr;
  57.     }
  58.     printf("Data Berhasil Di enque");
  59.     Sleep(500);
  60.     menu();
  61. }
  62.  
  63. void view(){
  64.     system("cls");
  65.     curr=head;
  66.     if (head!=0){
  67.         while (curr!=0){
  68.             printf("%d",curr->angka);
  69.             if(curr->next!=0)
  70.                 printf(" -> ");
  71.             curr=curr->next;
  72.         }
  73.     }else
  74.         printf("Tidak ada data yang dapat ditampilkan");
  75.     getchar();
  76.     menu();
  77. }
  78.  
  79. void deque(){
  80.     system("cls");
  81.     if(head!=0){
  82.         curr=head;
  83.         head=curr->next;
  84.         free(curr);
  85.         printf("Data Pertama Berhasil dihapus");
  86.     }
  87.     else
  88.         printf("Tidak ada data yang bisa di deque");
  89.     Sleep(500);
  90.     menu();
  91. }
Advertisement
Add Comment
Please, Sign In to add comment