Selasa, 23 Juni 2009

Linked List

C++

Linked List adalah struktur berupa rangkaian elemen saling berkait dimana tiap elemen dihubung elemen lain melalui pointer. Pointer adalah alamat elemen. Penggunaan pointer untuk mengacu elemen berakibat elemen-elemen bersebelahan secara logika walau tidak bersebelahan secara fisik di memori.

Istilah-Istilah
simpul
simpul terdiri dua bagian, yaitu:
  • Bagian data
  • Bagian pointer yang menunjukan ke simpul berikutnya.
First/Header
Variabel first/header berisi alamat (pointer)/acuan (reference) yang menunjuk lokasi simpul pertama linked list, digunakan sebagai awal penelusuran linked list.

Nil atau Null
Tidak bernilai, digunakan untuk menyatakan tidak mengacu ke manapun.

Simpul Terakhir (List)
Simpul terakhir linked list berarti tidak menunjuk simpul berikutnya. Tidak terdapat alamat disimpan di field pointer (bagian kedua dari simpul). Nilai null atau nil disimpan di field pointer di simpul terakhir.

Contoh program:
#include
#include

struct TNode //deklarasi awal LINKED LIST
{
int data;
TNode *next;
};

TNode *head;

void init()
{
head = NULL;
}

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

void insertDepan(int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1)
{
head=baru;
head->next = NULL;
}
else
{
baru->next = head;
head = baru;
}
cout<<<" Data masuk...\n"; getch(); } void hapusDepan() { TNode *hapus; int d; if (isEmpty()==0) { if(head->next != NULL)
{
hapus = head;
d = hapus->data;
head = head->next;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
cout<<<" Data "<<<" terhapus...\n"; } else { cout<<<<" Linked List Masih kosong...\n"; } getch(); } void search(int caridata) { TNode *bantu; bantu = head; int ketemu = 0; int index=0; if(isEmpty()==0) { while(bantu!=NULL) { bantu->data;

if (caridata == bantu->data)
{
cout<<<" Data Ditemukan..."<<<" Index Ke - "<next;
index++;

}
cout<<<" Data Tidak Ditemukan..."<<<<" Linked List Masih kosong...\n"; getch(); } void tampil() { TNode *bantu; bantu = head; if(isEmpty()==0) { cout<<" Data Linked List"<<<"================================="<<<" --> "<data<<" "; bantu=bantu->next;
}
cout<<" --> NULL";
cout<<<" Linked List Masih kosong...\n"; getch(); } void main() { int pil,dataku,cari; init(); //inisialisasi awal do { clrscr(); cout<<" SINGLE LINKED LIST"<<<"=========================="<<<" 1. Insert List"<<<" 2. Delete Front"<<<" 3. Show Linked List"<<<" 4. Search Data"<<<" 5. Exit"<<<"=========================="<<<<"Pilihan Anda = "; cin>>pil;

switch (pil)
{
case 1 :
cout<<<" Insert Data --> "; cin>>dataku;
insertDepan(dataku);
break;
case 2 :
hapusDepan();
break;
case 3 :
cout<<<<<" Data yg Dicari --> "; cin>>cari;
search(cari);
break;
};
}
while (pil != 5);
}>

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More