Advertisement
Hilmyhim

Double Linked List

May 14th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <windows.h>
  4. using namespace std;
  5.  
  6. struct dataKtp {
  7.     char nama[50];
  8.     char alamat[50];
  9.     char golongandarah[2];
  10.     dataKtp *next, *prev;
  11. };
  12. dataKtp *awal=NULL,*akhir=NULL,*bantu,*baru,*hapus;
  13.  
  14. void inputDatadepan(){
  15.     baru = new dataKtp;
  16.     baru->next = NULL;
  17.     baru->prev = NULL;
  18.     cout << "Nama\t\t: ";
  19.     cin >> baru->nama;
  20.     cout << "Alamat\t\t: ";
  21.     cin >> baru->alamat;
  22.     cout << "Golongan darah  : ";
  23.     cin >> baru->golongandarah;
  24.     if (awal == NULL){
  25.         awal = akhir = baru;
  26.     }
  27.     else {
  28.         baru->next = awal;
  29.         awal->prev = baru;
  30.         awal = baru;
  31.     }
  32.     system ("cls");
  33. }
  34.  
  35. void inputDatabelakang(){
  36.     baru = new dataKtp;
  37.     baru->next = NULL;
  38.     baru->prev = NULL;
  39.     cout << "Nama\t\t: ";
  40.     cin >> baru->nama;
  41.     cout << "Alamat\t\t: ";
  42.     cin >> baru->alamat;
  43.     cout << "Golongan darah  : ";
  44.     cin >> baru->golongandarah;
  45.     if (awal == NULL){
  46.         awal = akhir = baru;
  47.     }
  48.     else {
  49.         akhir->next = baru;
  50.         baru->prev = akhir;
  51.         akhir = baru;
  52.     }
  53.     system ("cls");
  54. }
  55.  
  56. void hapusDatadepan(){
  57.     if(awal->next == NULL){
  58.         awal=akhir=NULL;
  59.         cout << "Data sudah kosong";
  60.     }else{
  61.         hapus = awal;
  62.         awal = awal->next;
  63.         awal->prev = NULL;
  64.         delete hapus;
  65.     }
  66. }
  67.  
  68. void outputData (){
  69.     bantu=awal;
  70.     while (bantu != NULL){
  71.         cout << "Nama\t\t: "<<bantu->nama<<endl;
  72.         cout << "Alamat\t\t: "<<bantu->alamat<<endl;
  73.         cout << "Golongan darah  : "<<bantu->golongandarah<<endl;
  74.         bantu = bantu->next;
  75.     }
  76. }
  77.  
  78. int main()
  79. {
  80.     int pilihan;
  81.     do {
  82.         cout << "----------DOUBLE LINKED LIST-----------\n";
  83.         cout << "Pilih menu : \n";
  84.         cout << "1. Input data di depan\n";
  85.         cout << "2. Input data di belakang\n";
  86.         cout << "3. Hapus data di depan\n";
  87.         cout << "4. Output data\n";
  88.         cout << "Lain-lain >> EXIT\n";
  89.         cout << "Pilihan : ";
  90.         cin >> pilihan;
  91.         switch (pilihan){
  92.         case 1 :
  93.             inputDatadepan();
  94.             break;
  95.         case 2 :
  96.             inputDatabelakang();
  97.             break;
  98.         case 3 :
  99.             hapusDatadepan();
  100.             break;
  101.         case 4 :
  102.             if (baru == NULL){
  103.                     cout << "Data masih kosong !\n";
  104.             }
  105.             else {
  106.                 outputData();
  107.             }
  108.             break;
  109.         default :
  110.             cout << "---------EXIT---------";
  111.             break;
  112.         }
  113.     }while(pilihan <= 4);
  114.     getch();
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement