Advertisement
agusbd

linkedlist

Jan 2nd, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct node{
  6.         char nama[30];
  7.         int nim;
  8.         node *next;
  9.  
  10.         void print(){
  11.         cout<<nama <<" \t "<<nim<<"\n";
  12.         }
  13.  
  14. };
  15.  
  16. node *kepala,*ekor;
  17.  
  18. void buat();
  19. void menu();
  20. void input();
  21. void cetak();
  22. void add_ke_list(node* data);
  23. bool list_kosong();
  24.  
  25. int main(){
  26.  
  27.     buat();
  28.     menu();
  29.  
  30.  
  31. }
  32.  
  33.  
  34.  
  35. void menu(){
  36.     int menu;
  37.     char qn = 'y';
  38.     do{
  39.     cout<<"Menu "<<endl;
  40.     cout<<"1. Input "<<endl;
  41.     cout<<"2. Output (sorted)"<<endl;
  42.     cout<<"3. Exit"<<endl;
  43.     cout<<"Masukan pilihan : ";cin>>menu;
  44.     switch(menu){
  45.     case 1 :
  46.     input();
  47.     cout<<"kembali <y/n>";cin>>qn;
  48.     break;
  49.     case 2 :
  50.     cetak();
  51.     cout<<"kembali <y/n>";cin>>qn;
  52.     break;
  53.     case 3 :
  54.     qn = 'y';
  55.     cout<<"kembali <y/n>";cin>>qn;
  56.     break;
  57.  
  58.     }
  59.     }while(qn=='y');
  60.  
  61.  
  62. };
  63.  
  64.  
  65. void add_ke_list(node *data){
  66.  
  67.         cout<<"nama : ";cin>>data->nama;
  68.         cout<<"nim : ";cin>>data->nim;
  69.  
  70.         node *bantu = kepala;
  71.         if(!list_kosong()){
  72.         while(bantu->next->nim < data->nim )
  73.                bantu = bantu->next;
  74.  
  75.        data->next = bantu->next;
  76.        bantu->next =data;
  77.  
  78.  
  79.         }else{
  80.             data->next =ekor;
  81.             kepala->next = data;
  82.  
  83.         }
  84. }
  85.  
  86. void input(){
  87.     int jumlah;
  88.     cout<<"masukan jumlah data : ";cin>>jumlah;
  89.     for(int i =0; i< jumlah; i++){
  90.         cout<<"data ke "<<i<<endl;
  91.         add_ke_list(new node());
  92.     }
  93. };
  94.  
  95. bool list_kosong(){
  96.     return kepala->next == ekor;
  97.  
  98. }
  99. void buat(){
  100.     //buat batas awal akhir
  101.     kepala = new node();
  102.     ekor = new node();
  103.  
  104.     kepala->nim= -1;
  105.     ekor->nim = 99999999;
  106.  
  107.  
  108.     kepala->next = ekor;
  109. };
  110.  
  111.  
  112. void cetak(){
  113.  
  114.     node *bantu = kepala;
  115.     if( !list_kosong()){
  116.     while((bantu = bantu->next) != ekor)
  117.         bantu->print();
  118.     }else{
  119.  
  120.     cout<<"list kosong"<<endl;
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement