Sabtu, 02 Juli 2022

Penjelasan Dan Contoh Program Linked List C++



Link Download :


Linked List
Linked List atau dikenal juga dengan sebutan senarai berantai adalah struktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat/referensi dari record selanjutnya (dalam urutan). Elemen data yang dihubungkan dengan link pada Linked List disebut Node. Biasanya didalam suatu linked list, terdapat istilah head dan tail. 
  • Head adalah elemen yang berada pada posisi pertama dalam suatu linked list.
  • Tail adalah elemen yang berada pada posisi terakhir dalam suatu linked list.
Ada beberapa macam Linked List, yaitu :
  • Single Linked List
  • Double Linked List
  • Circular Linked List
  • Multiple Linked List


Single Linked List
Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL.
contoh :



Double Linked List
Double Linked List merupakan suatu linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk ke NULL.


Circular Linked List
Circular Linked List merupakan suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk NULL. Ada 2 jenis Circular Linked List, yaitu :
  • Circular Single Linked List

  • Circular Double Linked List


Multiple Linked List
Multiple Linked List merupakan suatu linked list yang memiliki lebih dar 2 buat variabel pointer. contoh :


Perbedaan Linked List Dengan Array


Contoh Program

#include <stdio.h>
#include <iostream>
#include <conio.h>

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

TNode *head, *tail;

void init(){
    head = NULL;
    tail = NULL;
}

int isEmpty(){
    if(tail==NULL)return 1;
    else return 0;
}

void insertDepan(int databaru){
    TNode *baru;
    baru = new TNode;
    baru->data = databaru;
    baru-&ht;next = NULL;
    if(isEmpty()==1)
    {
        head=tail=baru;
        tail->next=NULL;
    }else{
        baru->next = head;
        head=baru;
    }
    cout<<endl;
    cout<<" Data Sudah Masuk "<<endl;
}

void tampil(){
    TNode *bantu;
    bantu=head;
        if(isEmpty()==0)
        {
            while(bantu!=NULL)
            {
                cout<<bantu->data<<" ";
                bantu=bantu->next;
            }
        }else{
        	cout<<endl;
            cout<<" Data Masih kosong "<<endl;
            cout<<endl;
            cout<<" Enter Untuk Melanjutkan "<<endl;
        }
}

void hapusDepan(){
    TNode *hapus;
    int d;
    if (isEmpty()==0)
    {
        if(head!=tail)
        {
            hapus=head;
            d=hapus->data;
            head=head->next;
            delete hapus;
        }else{
            d=tail->data;
            head=tail=NULL;
        }
        cout<<endl;
        cout<<" Angka "<<d<<" Berhasil Di Hapus "<<endl;
        cout<<endl;
        cout<<"Enter Untuk Melanjutkan "<<endl;
    }else{
        cout<<endl;
        cout<<" Data Masih Kosong "<<endl;
        cout<<endl;
        cout<<" Enter Untuk Melanjutkan "<<endl;
    }
}

void clear(){
    TNode *bantu, *hapus;
    bantu =head;
    while(bantu!=NULL)
    {
        hapus=bantu;
        bantu=bantu->next;
        delete hapus;
    }
    head = NULL;
    cout<<endl;
    cout<<" Semua Data Berhasil Di Hapus "<<endl;
    cout<<endl;
    cout<<" Enter Untuk Melanjutkan "<<endl;
}

main(){
    int pilihan, databaru;
    do
    {
        clrscr();
        cout<<endl;
        cout<<" ============================"<<endl;
        cout<<" =   PROGRAM LINKED LIST    ="<<endl;
        cout<<" ============================"<<endl;
        cout<<" = 1. Insert                ="<<endl;
        cout<<" = 2. Delete Depan          ="<<endl;
        cout<<" = 3. Tampil Data           ="<<endl;
        cout<<" = 4. Clear                 ="<<endl;
        cout<<" = 5. Exit                  ="<<endl;
        cout<<" ============================"<<endl;
        cout<<" Masukan Pilihan : ";
        cin>>pilihan;
        switch (pilihan){
            case 1:
            	 cout<<endl;
                cout<<" Masukan Data = ";
                cin>>databaru;
                insertDepan(databaru);
                cout<<endl;
                cout<<" Enter Untuk Melanjutkan "<<endl;
                break;
            case 2:
                hapusDepan();
                break;
            case 3:
                tampil();
                break;
            case 4:
                clear();
                break;
            case 5:
                return 0;
                break;
            default :
             	 cout<<endl;
                cout<<" Pilihan Yang Anda Masukkan Salah ! "<<endl;
        }
        getch();
    }
    while (pilihan!=7);
}

0 komentar:

Posting Komentar