-->

Pengertian Linked List dan Contoh Programnya Dalam Bahasa C++

Linked list adalahsekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian Linked list juga merupakan suatu cara untuk menyimpan data dengan struktur sehingga dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data yangdiperlukan. Struktur ini lebih dinamis karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda dengan array yang ukurannya tetap. berikut gambaran kecil mengenai linked list.Macam-macam Linked List :

1.        Linked List Circular
a. Double Linked List 
Pengertian secara umumnya DLLC itu Linked list yang menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk pointer berikutnya "next", 1 field menunjuk pointer sebelumnya " prev ",  1 field yang berisi data untuk node tersebut .
            b.    Single Linked List    
Single Linked List Circular (SLLC) adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Jika Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.
2.    Linked List Non Circular
Double Linked List Non Circular (DLLNC)
adalah Double Linked List yang memiliki 2 buah pointer yaitu pointernext dan prev. Pointer next menunjuk pada node setelahnya dan pointer prev menunjuk pada node sebelumnya.
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <malloc.h>

using namespace std;

struct simpul
{
     int data;
     struct simpul *next;
    
}

     *baru, *awal=NULL,*akhir=NULL,*hapus,*temp;
    
     void buat_baru()
     {
          baru=(simpul*) malloc (sizeof(struct simpul));
          cout<<"Masukkan Data : "; cin>>baru->data;
          baru->next=NULL;
     }
    
     void insert_depan()
     {
          buat_baru();
          if(awal=NULL)
          {
              awal=baru;
              akhir=baru;
              akhir->next=NULL;
          }
          else
          {
              baru->next=awal;
              awal=baru;
          }
          cout<<endl<<endl;
     }
    
     void insert_belakang()
     {
          buat_baru();
          if(awal=NULL)
          {
              awal=baru;
             
          }
          else
          {
              akhir->next=baru;
          }
          akhir=baru;
          akhir->next=NULL;
          cout<<endl<<endl;
     }
    
     void hapus_depan()
     {
          if(awal=NULL)
          cout<<"kosong";
          else
          {
              hapus=awal;
              awal=awal->next;
              free(hapus);
             
          }
          cout<<endl<<endl;
     }
    
     void hapus_belakang()
     {
          if(awal=NULL)
          cout<<"kosong";
          else if (awal=akhir)
          {
              hapus=awal;
              awal=awal->next;
              free(hapus);
          }
          else
          {
              hapus=awal;
              while (hapus->next!=akhir)
             
              hapus=hapus->next;
              akhir=hapus;
              hapus=akhir->next;
              akhir->next=NULL;
              free(hapus);
          }
          cout<<endl<<endl;
     }
    
     void tampil()
     {
          if(awal=NULL)
          cout<<"kosong";
          else
          {
              temp=awal;
              while(temp!=NULL)
              {
                   cout<<"data:"<<temp->data<<"";
                   temp=temp->next;
              }
          }
    
     getch();
}

main()
{
     char pilihan;
     do
     {
          system ("cls");
          cout<<"Single Linked List"<<endl;
          cout<<"[a] Insert Depan"<<endl;
          cout<<"[b] Insert belakang"<<endl;
          cout<<"[c] hapus Depan"<<endl;
          cout<<"[d] hapus belakang"<<endl;
          cout<<"[e] tampilkan"<<endl;
          cout<<"[0] keluar"<<endl;
          cout<<"Pilihan:";cin>>pilihan;       

switch(pilihan)
{
     case 'a' :system("cls");
          cout<<">>Insert Depan<<"<<endl<<endl;
          insert_depan();
          cout<<"data berhasil di tambah di depan....";
          getch();
          break;
     case 'b' :system("cls");
          cout<<">>Insert Belakang<<"<<endl<<endl;
          insert_belakang();
          cout<<"data berhasil di tambah di belakang....";
          getch();
          break;   
     case 'c' :system("cls");
          cout<<">>Hapus Depan<<"<<endl<<endl;
          hapus_depan();
          cout<<"data berhasil di hapus di depan....";
          getch();
          break;
     case 'd' :system("cls");
          cout<<">>Hapus Belakang<<"<<endl<<endl;
          hapus_belakang();
          cout<<"data berhasil di hapus din belakang....";
          getch();
          break;
     case 'e' :system("cls");
          cout<<">>tampilkan<<"<<endl<<endl;
          tampil();
          break;
          case '0':break;
     }
}
while(pilihan!='0');
}

berikut output programnya :




Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel