linked list

20
LINKED LIST Kelompok : 1 (Satu) Nama : 1) Yayang EBM6) Ramadhan Rinaldi 2) Saka Praja7) Ayu Wandira 3) M. Mehmet 8) Iin Tabiin 4) Riski Megawati 9) Reza Yunita 5) Andreas NW

Upload: yayang-peterfoundeven

Post on 17-Jun-2015

1.396 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linked list

LINKED LIST

Kelompok : 1 (Satu)

Nama : 1) Yayang EBM 6) Ramadhan Rinaldi

2) Saka Praja 7) Ayu Wandira

3) M. Mehmet 8) Iin Tabiin

4) Riski Megawati9) Reza Yunita

5) Andreas NW

Page 2: Linked list

• Definisi• Linked List adalah struktur berupa rangkaian

elemen saling berkait dimana tiap elemen dihubungkan ke elemen yang lain melalui pointer.

• Linked list adalah sekumpulan 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 yang diperlukan.

Page 3: Linked list

• Masing-masing komponen sering disebut dengan simpul. Setiap simpul pada dasarnya dibagi atas dua bagian. Bagian pertama disebut dengan Isiyaitu bagian yang berisi nilai yang disimpan oleh simpul. Bagian kedua disebut bagian Pointer, yaitu berisi alamat dari simpul berikutnya dan atau sebelumnya.

• Linked List dapat disajikan dengan 2 bagian besar yaitu Singly List dan Doubly List. Baik Singly List maupun Doubly List dapat juga disajikan secara melingkar (circular).

Page 4: Linked list

SINGLY LINKED LIST

• Merupakan Linked List yang paling sederhana. Setiap simpul dibagi menjadi dua bagian yaitu bagian Isi dan bagian Pointer. Bagian Isi merupakan bagian yang berisi data yang disimpan oleh simpul, sedangkan bagian Pointer merupakan bagian yang berisi alamat dari simpul berikutnya

Page 5: Linked list

Sebagai ilustrasi simpul dari Singly List dapat dilihat pada gambar berikut :

Bagian Data Bagian Pointer

terlihat bahwa simpul pertama dihubungkan ke simpul kedua melalui bagian Pointer simpul pertama. Bagian Pointer simpul kedua dihubungkan ke simpul ketiga. Demikian seterusnya hingga simpul terakhir. Bagian Pointer simpul terakhir tidak dihubungkan ke simpul lain yang disebut sebagai NULL.

Page 6: Linked list

• Non Circular Singly Linked List

• Circular Singly Linked List

Page 7: Linked list

Deklarasi Singly Linked ListTypedef struct node *simpul;Struct node

{ Type_data Isi; SimpulNext;};

Page 8: Linked list

Operasi pada Singly Linked Lista. Menambah Simpul

Operasi yang digunakan untuk menyisipkan simpul di posisi tertentu. Penyisipan simpul dapat dilakukan di posisi depan, penyisipan simpul di belakang, penyisipan simpul di antara dua simpul (simpul tengah).

Page 9: Linked list

b. Menghapus SimpulMaksudnya adalah operasi menghapus suatu simpul dari suatu Linked List. Dalam melakukan penghapusan simpul, ada yang perlu diperhatikan, bahwa Linked List tidak boleh kosong dan Linked List tidak boleh terputus. Sama halnya dengan penyisipan, penghapusan simpul juga dapat dilakukan terhadap simpul depan, simpul belakang, dan simpul tengah.

Page 10: Linked list

Menghapus simpul

Page 11: Linked list

c. Mencetak Isi SimpulNilai masing-masing simpul dapat dicetak mulai dari isi simpul pertama atau simpul depan hingga simpul belakang dengan fungsi berikut ini.

void Cetak(simpul L){ Simpul bantu; if (L == NULL) cout << “Linked List Kosong. . . . “ << endl; else

{ bantu=L; cout<<”Isi Linked List : “; while (bantu->Next != NULL) { Cout << bantu -> Isi << “-->”; }}

}

Page 12: Linked list

Doubly Linked List• Doubly Linked List merupakan Linked List dimana

setiap simpul dibagi menjadi tiga bagian yaitu bagian isi, bagian pointer kiri, dan bagian pointer kanan. Bagian isi merupakan bagian yang berisi data yang disimpan oleh simpul, sedangkan bagian pointer kiri merupakan bagian yang berisi alamat dari simpul sebelumnya dan bagian pointer kanan merupakan bagian yang berisi alamat dari simpul berikutnya

Page 13: Linked list

• Non Circular Doubly Linked List

• Circular Doubly Linked List

Page 14: Linked list

Deklarasi Doubly Linked List

typedef struct node *simpul;struct node

{ char Isi; simpul kanan; simpul kiri;};

Page 15: Linked list

Operasi Pada Doubly Linked Lista. Penyisipan Simpul

Penyisipan simpul adalah operasi penyisipan suatu simpul baru ke dalam suatu Doubly Linked List. Penyisipan dapat dilakukan di posisi depan, tengah, dan belakang.

b. Penghapusan SimpulOperasi menghapus suatu simpul dari suatu Linked List pada Doubly Linked List hampir sama dengan penghapusan simpul Singly Linked List, yaitu Linked List (DL) tidak boleh dalam keadaan kosong. Penghapusan simpul juga dapat dilakukan terhadap simpul depan, simpul belakang, dan simpul tengah.

Page 16: Linked list

• Gambar Penyisipan/Menambah Simpul

Page 17: Linked list

• Gambar Penghapusan Simpul

Page 18: Linked list

c. Pencetakan Simpulvoid Cetak(simpul DL){ if(DL == NULL)

cout << “Linked List Kosong . . . . “ <<endl; else

{ cout << “Isi Linked List : “;

while (DL != NULL){ Cout << DL->Isi<<” “;

DL=DL->kanan;}

}}

Page 19: Linked list

• Mencetak Linked List Secara MundurMencetak mundur artinya mencetak elemen Linked List mulai dari elemen simpul belakang ke depan.

void Cetak_Mundur(simpul DL){ if(DL != NULL) { Cetak_Mundur(DL->kanan); cout << DL->Isi<<” “; }}

Page 20: Linked list

Terima Kasih