Doubel Linked List.

Slides:



Advertisements
Presentasi serupa
Double Linked List.
Advertisements

Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
LINKED LIST.
LINKED LIST.
CARA MEMBUAT SINGLE LINKED LIST DENGAN BORLAND C++
Pertemuan 2 STRUKTUR DATA LINKED LIST
LINKED LIST (List linier)
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
SENARAI BERANTAI TUNGGAL
Queue.
STRUKTUR DATA (6) single linked list non circular
Single Linked List Yuliana Setiowati, S.Kom.
Algoritma & Struktur Data Linked List Evangs Mailoa.
LINKED LIST by Yohana N.
Struktur Data List Linear : Linked List (Double Linkedlist)
Linear Data Structures (Linked List). Node Link atau pointer data field.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
Tenia Wahyuningrum, S.Kom. MT
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Struktur Data (Data Structure) – IS 2313
Algoritma dan Struktur Data
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
LINK LIST “Suatu cara menyimpan data dengan terstruktur sehingga programmer dapat secara otomatis menciptakan suatu tempat baru didalam memori komputer.
SENARAI BERANTAI TUNGGAL
Double linked list non circular
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List Oleh : Yuli Praptomo PHS, S.Kom.
STRUKTUR DATA Linked List
8. Singly Linear Linked List
LINKED LIST by Yohana N.
Single Linked List.
12. Doubly Linear Linked List
Algoritma dan Struktur Data
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Double Linked List.
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
11. Singly Circular Linked List
Pointer & Linked List.
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
Doubel Linked List.
Stack.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
STRUKTUR DATA (7) single linked list circular
Stack.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
Queue (Antrian).
Single Linked List Circular (SLLC)
LINKED LIST GANDA Linked list ganda (doubly linked list) adalah linked list yang setiap simpul-nya (node) memiliki dua buah pointer, masing-masing berada.
STRUKTUR DATA (8.2) double linked list circular
Double Linked List.
Defri Kurniawan VARIASI LIST Defri Kurniawan
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
LINKED LIST MELINGKAR Linked List melingkar (circular) adalah linked list linier biasa dimana pointer pada node terakhir diarahkan kembali ke node pertama.
Algoritma dan Struktur Data
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
Variable Static & Linked List
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Doubel Linked List

Pengertian Linked list memiliki 2 buah pointer yaitu pointer next dan prev. Pointer next menunjuk pada node setelahnya dan pointer prev menunjuk pada node sebelumnya.

Ilustrasi DLLNC Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya & ke node sebelumnya Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke nilai NULL. Selanjutnya pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node selanjutnya pada list.

Deklarasi Node baru Deklarasi node Dibuat dari struct berikut ini: typedef struct Gerbong{ int data; Gerbong *next; Gerbong *prev; }; Pembentukan node baru Gerbong *baru; baru = new Gerbong; baru.data = databaru; baru.next = NULL; baru.prev = NULL;

DLLNC dengan Kepala (1) Dibutuhkan satu buah variabel pointer: Kepala Kepala akan selalu menunjuk pada node pertama Deklarasi Pointer Penunjuk Kepala Double Linked List : Gerbong *kepala;

end if DLLNC dengan Kepala (1) void tampil(){ Gerbong *bantu; bantu = kepala; if(kepala != NULL) while(bantu!=NULL) output(bantu.data) bantu=bantu.next; end while else output(“list kosong”) end if

Penambahan Data di Depan (1) Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada kepala nya. Pada prinsipnya adalah mengkaitkan data baru dengan kepala, kemudian kepala akan menunjuk pada data baru tersebut sehingga kepala akan tetap selalu menjadi data terdepan. Untuk menghubungkan node terakhir dengan node terdepan dibutuhkan pointer bantu.

Penambahan Data di Depan (2) void insertDepan(int databaru) Gerbong *baru; baru = new Gerbong; baru.data = databaru; baru.next = NULL; baru.prev = NULL; if(kepala==NULL) kepala=baru; kepala.next = NULL; kepala.prev = NULL; else //kepala != NULL baru.next = head; kepala.prev = baru; kepala = baru; end if

Penambahan Data di Belakang (1) Penambahan data dilakukan di belakang, namun pada saat pertama kali data langsung ditunjuk pada kepala-nya. Penambahan di belakang lebih sulit karena kita membutuhkan pointer bantu untuk mengetahui data terbelakang, kemudian dikaitkan dengan data baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.

Penambahan Data di Belakang (2) void insertBelakang (int databaru) Gerbong *baru,*bantu; baru = new Gerbong; baru.data = databaru; baru.next = NULL; baru.prev = NULL; if(kepala == NULL) kepala=baru; kepala.next = NULL; kepala.prev = NULL; else //kepala != NULL bantu=kepala; while(bantu.next!=NULL) bantu=bantu.next; end while bantu.next = baru; baru.prev = bantu; end if

Menghapus data di depan void hapusDepan (){ gerbong *hapus; int d; if (kepala != NULL) if(kepala->next != NULL) hapus = head; d = hapus->data; kepala = kepala->next; kepala->prev = NULL; delete hapus; else d = kepala->data; kepala = NULL; end if else //kepala=NULL output(“tidak dapat didelete”)

Menghapus data di belakang void hapusBelakang(){ gerbong *hapus; int d; if (kepala != NULL){ if(kepala.next != NULL){ hapus = kepala; while(hapus.next!=NULL) hapus = hapus.next; end while d = hapus.data; hapus.prev.next = NULL; delete hapus; else d = kepala->data; kepala = NULL; end if output(“tidak dapat didelete”)