Doubly Linked List Dr. Anto Satriyo Nugroho, M.Eng Web:

Slides:



Advertisements
Presentasi serupa
Pemrograman Terstruktur
Advertisements

Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
Double Linked List.
Jawaban PR-01 Dr. Anto Satriyo Nugroho, M.Eng Web:
Pendahuluan Dr. Anto Satriyo Nugroho, M.Eng Web: Mata Kuliah: Dasar Pemrograman.
Flowchart (1) Mata Kuliah: Dasar Pemrograman
Apakah Recursion itu ? Dr. Anto Satriyo Nugroho, M.Eng
Struktur Kendali Proses (Bab 4) Dr. Anto Satriyo Nugroho, M.Eng Web: Mata Kuliah: Dasar.
Elemen dan Struktur Program C
Dr. Anto Satriyo Nugroho, M.Eng
Dr. Anto Satriyo Nugroho, M.Eng
Dr. Anto Satriyo Nugroho, M.Eng
Dr. Anto Satriyo Nugroho, M.Eng
Single linked list.
STRUKTUR DATA (7) single linked list circular
STRUKTUR DATA (8.1) double linked list non circular
LINKED LIST.
Sorting Algorithms Dr. Anto Satriyo Nugroho, M.Eng
Pertemuan 2 STRUKTUR DATA LINKED LIST
List, Stack & Queue (1) Dr. Anto Satriyo Nugroho, M.Eng
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
Linked List Pembuatan Simpul Awal.
LINK LIST Latifah Rifani.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
Queue.
Quiz struktur data Genap 2013.
1 Pointer wijanarto. 2 Topik Introduction to Pointers Pointers dan Parameter Fungsi.
Algoritma & Struktur Data Pointer Evangs Mailoa.
STRUKTUR DATA (6) single linked list non circular
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
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
Algorithm and Data Structures.
Pertemuan ketujuh Struktur data st3telkom.ac.id
Linear List.
LINKED LIST.
Struktur Data (Data Structure) – IS 2313
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Algoritma dan Struktur Data
Double linked list non circular
Struktur Data Linked List
STRUKTUR DATA (2) Single Linked List
STRUKTUR DATA Linked List
LINKED LIST by Yohana N.
Single Linked List.
STRUKTUR DATA QUIZ.
12. Doubly Linear Linked List
REPRESENTASI FISIK LIST LINEAR
Algoritma dan Struktur Data
11. Singly Circular Linked List
Doubel Linked List.
Linked List 6.3 & 7.3 NESTED LOOP.
Doubel Linked List.
Apakah Algoritma & Struktur Data itu ?
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
STRUKTUR DATA (8.2) double linked list circular
Defri Kurniawan VARIASI LIST Defri Kurniawan
Linear Doubly INSERT KIRI
Linear Doubly INSERT TENGAH
Linear Doubly Linked List
Variable Static & Linked List
Struktur Data Linear Created by Fifth Group, S3B TI Anggota
SINGLE LINKED LIST (SLL)
Transcript presentasi:

Doubly Linked List Dr. Anto Satriyo Nugroho, M.Eng Web:

Beberapa Jenis Struktur Data 1.Array 1.Linear List 2.Stack 3.Queue 2.List 1.Linked List 2.Circular List 3.Doubly Linked List 4.Multi list structure 3.Tree Structure

Outline Review doubly-linked list Latihan

Apakah doubly-linked list itu ? Semua sel yang terdapat pada list disambungkan dengan pointer, sedangkan tiap sel memiliki TIGA komponen : value, pointer ke sel sebelumnya dan pointer ke sel berikutnya Dengan memiliki dua buah pointer ini, maka doubly-linked list dapat diakses dengan DUA arah : ke arah depan dan ke belakang prevvaluenext valuenextvaluenext Linked List Bidirectional List prevvaluenext

struct CELL { struct CELL *prev; struct CELL *next; MYDATA value; }; address Doubly-linked List prevvaluenext Misalnya int, char, float, long, double, dsb 24

Kelebihan dan kelemahan Kelebihan 1.List bisa diakses dengan dua arah : ke depan maupun ke belakang 2.Penambahan dan penghapusan data menjadi mudah, karena pada tipe ini kita dapat menambahkan sel baru sesudah maupun sebelum sebuah sel. Demikian juga dalam hal menghapus sel. Kelemahan 1. Sebuah data memiliki dua buah pointer, sehingga memerlukan space yang lebih besar

x  prev=p; (1) x  next=p  next; (2) p  next  prev=x; (3) p  next=x; (4) p x Tambahkan sel baru yang ditunjuk oleh pointer x, sesudah suatu sel yang ditunjuk oleh pointer p Yang diubah bukan hanya pointer next tetapi juga pointer prev Cara menambahkan sel baru

x  prev=p; (1) x  next=p  next; (2) p  next  prev=x; (3) p  next=x; (4) p x Tambahkan sel baru yang ditunjuk oleh pointer x, sesudah suatu sel yang ditunjuk oleh pointer p Yang diubah bukan hanya pointer next tetapi juga pointer prev Cara menambahkan sel baru (1)

x  prev=p; (1) x  next=p  next; (2) p  next  prev=x; (3) p  next=x; (4) p x Tambahkan sel baru yang ditunjuk oleh pointer x, sesudah suatu sel yang ditunjuk oleh pointer p Yang diubah bukan hanya pointer next tetapi juga pointer prev Cara menambahkan sel baru (1)

x  prev=p; (1) x  next=p  next; (2) p  next  prev=x; (3) p  next=x; (4) p x Tambahkan sel baru yang ditunjuk oleh pointer x, sesudah suatu sel yang ditunjuk oleh pointer p Yang diubah bukan hanya pointer next tetapi juga pointer prev Cara menambahkan sel baru (2)

x  prev=p; (1) x  next=p  next; (2) p  next  prev=x; (3) p  next=x; (4) p x Tambahkan sel baru yang ditunjuk oleh pointer x, sesudah suatu sel yang ditunjuk oleh pointer p Yang diubah bukan hanya pointer next tetapi juga pointer prev Cara menambahkan sel baru (3)

x  prev=p; (1) x  next=p  next; (2) p  next  prev=x; (3) p  next=x; (4) p x Tambahkan sel baru yang ditunjuk oleh pointer x, sesudah suatu sel yang ditunjuk oleh pointer p Yang diubah bukan hanya pointer next tetapi juga pointer prev Cara menambahkan sel baru (4)

p->prev->next=p->next; (1) p->next->prev=p->prev; (2) free(p); p Hapuslah sel yang ditunjuk pointer p Cara menghapus sebuah sel Yang diubah bukan hanya pointer next tetapi juga pointer prev

p Hapuslah sel yang ditunjuk pointer p Cara menghapus sebuah sel Yang diubah bukan hanya pointer next tetapi juga pointer prev skip (1) p->prev->next=p->next; (1) p->next->prev=p->prev; (2) free(p);

p Hapuslah sel yang ditunjuk pointer p Cara menghapus sebuah sel Yang diubah bukan hanya pointer next tetapi juga pointer prev (2) 13 p->prev->next=p->next; (1) p->next->prev=p->prev; (2) free(p);

Latihan pemrograman 1.Downloadlah doublyll.c dari 2.Selesaikan fungsi cell_insert() 3.Fungsi cell_insert() adalah menambahkan databaru pada sebuah doubly linked list, dimana data harus dalam kondisi terurutkan. Dimulai dari data dengan nilai kecil, dan semakin ke belakang semakin besar.

struct CELL { struct CELL *prev; struct CELL *next; int value; }; prevvaluenext address Doubly-linked List

15 Sel ini akan ditambahkan ke list 25 Doubly-linked List new_cell

p=13 p->value=10 → 10 < 15 →pindah ke sel berikutnya 15 new_cell 25 Doubly-linked List

15 25 p=18 p->value=20 → 20 > 15 pindah ke sel sebelumnya Doubly-linked List new_cell

15 25 p=13 Doubly-linked List new_cell tambahkan sel baru sesudah sel yang ditunjuk

new_cell 25 Doubly-linked List

Doubly-linked List void cell_insert(int a) { cell *p, *new_cell; } ① Mencari posisi dimana new_cell harus dimasukan ② Alokasi memory untuk new_cell memakai malloc ③ Tambahkan new_cell pada posisi yang ditentukan

Latihan pemrograman 1.Gambarkan bidirectional list berikut 2.Tambahkan sel berikut setelah sel yang berisi value “20” 3.Gambarkan kondisi bidirectional list, setelah sel yang berisi value “70” dihapus. Kerjakan soal ini terhadap list yang diperoleh dari no.2 di atas head