Advertisement
oke_google

Modul 2.8

Apr 17th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.88 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct data{
  6.     int nilai;
  7.     data *next;
  8. };
  9.  
  10. data *depan, *belakang, *tambah, *hapus, *bantu, *posisi;
  11.  
  12. void tambahData(){
  13.     tambah = new data;
  14.     cout<<"Masukan Nilai = ";
  15.     cin>>nilai;
  16.     cin.ignore();
  17.     tambah->nilai = nilai;
  18.     tambah->next = NULL;
  19. }
  20.  
  21. void tambahDepan(){
  22.     if(depan==NULL){
  23.         belakang = tambah;
  24.     }
  25.     else{
  26.         tambah->next = depan;
  27.     }
  28.     depan = tambah;
  29. }
  30.  
  31. void tambahBelakang(){
  32.     if(belakang==NULL){
  33.         depan = tambah;
  34.     }
  35.     else{
  36.         belakang->next = tambah;
  37.     }
  38.     belakang = tambah;
  39. }
  40.  
  41. void tambahTengah(){
  42.     int i, kounter, letak ;
  43.     cout<<"Posisi mana data ini akan ditaruh ";
  44.     cin>>letak;
  45.  
  46.     posisi = depan;
  47.     //menghitung banyak linked list
  48.     while (posisi != NULL){
  49.         posisi = posisi->next;
  50.         kounter++;
  51.     }
  52.     //linked awal
  53.     if (letak == 1){
  54.         if (depan == NULL){
  55.             depan = tambah;
  56.             depan->next = NULL;
  57.         }
  58.         else{
  59.             //menyimpan data depan di variable bantu
  60.             bantu = depan;
  61.             //meyimpan isi dari tambah ke depan
  62.             depan = tambah;
  63.             //memberikan akses dari variable depan ke variable bantu
  64.             depan->next = bantu;
  65.         }
  66.     }
  67.     //cek apakah letak berada dalam jangkauan linked list
  68.     else if (letak > 1  && letak <= kounter){
  69.         //menset posisi ke link awal
  70.         posisi = depan;
  71.         for (i = 1; i < letak; i++){
  72.         //menyimpan variable posisi ke variable bantu
  73.             bantu = posisi;
  74.         //memberikan variable posisi ke link selanjutnya
  75.             posisi = posisi->next;
  76.         }
  77.         //memberikan akses variable bantu ke variable tambah(baru)
  78.             bantu->next = tambah;
  79.         //memberikan akses variable (baru) ke variable
  80.             tambah->next = posisi;
  81.         }
  82.     else{
  83.         cout<<"Positon out of range"<<endl;
  84.     }
  85. }
  86.  
  87. void hapusTengah(){
  88.         int i, kounter, letak ;
  89.         cout<<"Masukan Posisi yg Ingin dihapus: ";
  90.         cin>>letak;
  91.  
  92.         posisi = depan;
  93.             while(posisi != NULL){
  94.                 posisi = posisi->next;
  95.                 kounter++;
  96.             }
  97.             if (letak> 0 && letak<= kounter){
  98.                 posisi = depan;
  99.                 for (i = 1;i < letak;i++){
  100.                     bantu = posisi;
  101.                     posisi = posisi->next;
  102.                 }
  103.                 bantu->next = posisi->next;
  104.                 posisi = NULL;
  105.             }
  106.             else{
  107.                 cout<<"Data yg ada hanya "<<kounter<<endl;
  108.             }
  109.             cout<<"Element Deleted"<<endl;
  110.     }
  111.  
  112. void hapusDataTengah(){
  113.     int nilai;
  114.     cout<<"Masukan Data yg ingin di hapus = ";
  115.     cin>>ni;
  116.  
  117.     posisi = depan;
  118.  
  119.     while(posisi->nilai != nilai){
  120.         bantu = posisi;
  121.         posisi = posisi->next;
  122.     }
  123.     bantu->next = posisi->next;
  124.     posisi = NULL;
  125. }
  126.  
  127. void hapusDepan(){
  128.     hapus = depan;
  129.     depan = hapus->next;
  130.     hapus = NULL;
  131. }
  132.  
  133. void hapusBelakang(){
  134.     posisi = depan;
  135.     while(posisi != belakang){
  136.         bantu = posisi;
  137.         posisi = posisi->next;
  138.     }
  139.     posisi = NULL;
  140.     belakang = bantu;
  141. }
  142.  
  143. void tampil(){
  144. posisi = depan;
  145. char lihat;
  146. int lokasi=1;
  147.           while(posisi!=NULL){
  148.            system("CLS");
  149.            cout<<"Data ke- "<<lokasi<<" : \n";
  150.            cout<<"nilai = "<<posisi->nilai<<endl;
  151.            if(posisi != belakang){
  152.                cout<<"Ingin Lihat Data Selanjutnya [y/n] ? ";
  153.                cin>>lihat;
  154.            }
  155.            else{
  156.              cout<<"Data Habis"<<endl;
  157.            }
  158.            if(lihat == 'y'){
  159.            posisi=posisi->next;//beralih ke data selanjutnya
  160.            lokasi++;
  161.            }
  162.            else{
  163.             break;
  164.            }
  165.         }
  166. }
  167.  
  168. int main()
  169. {
  170.  
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement