Linked List DELETE 6.3 & 7.3 NESTED LOOP.

Slides:



Advertisements
Presentasi serupa
Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP.
Advertisements

Queue (Antrian).
bentuknya, yang dapat berubah pada saat runtime.
MODUL KULIAH STRUKTUR DATA TANGGAL REVISI TANGGAL BERLAKU KODE DOKUMEN :::::: September Session 8 Edited By Al-Bahra. L.B, S. Kom, M.
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
LINKED LIST (List linier)
Linked List Pembuatan Simpul Awal.
LINK LIST Latifah Rifani.
Soal-Soal Latihan Mandiri
Single Linked List Yuliana Setiowati, S.Kom.
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
LINKED LIST by Yohana N.
Double Ended QUEUE (DeQue) 6.3 & 7.3 NESTED LOOP.
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.
Dasar Struktur Data.
Pertemuan ketujuh Struktur data st3telkom.ac.id
Linear List.
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
Linked List.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
BAB 5 LINKED LIST Linked list adalah struktur berupa rangkaian elemen saling berkait dimana tiap elemen dihubungkan ke elemen lain melalui pointer. Keterhubungan.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
Struktur Data List Berkait (Delete).
Bocoran Soal 6.3 & 7.3 NESTED LOOP UTS.
Universitas Budi Luhur
SENARAI BERANTAI TUNGGAL
BAB3 QUEUE 6.3 & 7.3 NESTED LOOP.
Tim struktur data IF UNIKOM
LINKED LIST by Yohana N.
QUEUE Copyright 2008 by Yohana.
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Tim struktur data IF UNIKOM
STACK 6.3 & 7.3 NESTED LOOP.
Double Linked List.
SUMMARY LINKED LIST.
Pertemuan 5 Review Berbagai Struktur Data
Defri Kurniawan DOUBLE LINKED LIST Defri Kurniawan
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
Linked List Eko Riyanto.
MATAKULIAH : STRUKTUR DATA
LINKED LIST Oleh: Tim Algoritma & Pemrograman IF Double Linked List.
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
Linked List 6.3 & 7.3 NESTED LOOP.
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
LINKED LIST GANDA Linked list ganda (doubly linked list) adalah linked list yang setiap simpul-nya (node) memiliki dua buah pointer, masing-masing berada.
STACK (TUMPUKAN) Stack atau tumpukan didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan dan pengambilan elemen melalui.
IMPLEMENTASI LINKED LISTMENGGUNAKAN ARRAY
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
STRUKTUR DATA LINKED LIST
Linked List INSERT KANAN 6.3 & 7.3 NESTED LOOP.
Tim struktur data IF UNIKOM
DEQUE Deque (Deck atau Dequeue) adalah suatu list linier atau linier list, yang penambahan dan penghapusan elemennya dapat dilakukan pada kedua sisi ujung.
Defri Kurniawan VARIASI LIST Defri Kurniawan
Linear Doubly INSERT KIRI
Double STACK 6.3 & 7.3 NESTED LOOP.
Linear Doubly INSERT TENGAH
Linear Doubly Linked List
LINKED LIST (SENARAI BERANTAI)
LINKED LIST MELINGKAR Linked List melingkar (circular) adalah linked list linier biasa dimana pointer pada node terakhir diarahkan kembali ke node pertama.
Linked List DELETE TENGAH 6.3 & 7.3 NESTED LOOP.
SINGLE LINKED LIST (SLL)
Stack dan Queue dengan Respresentasi Linked List
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

Linked List DELETE 6.3 & 7.3 NESTED LOOP

DELETE : DELETE KIRI DELETE KANAN DELETE TENGAH

Menghapus simpul yang berada pada ujung paling kiri DELETE KIRI Menghapus simpul yang berada pada ujung paling kiri Disebut juga DELETE AWAL

Mana yang mengikuti prinsip STACK, dan FIRST LAST Ilustrasi-1 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 Urutan insert (1) (2) (3) (4) Urutan delete (1) (2) (3) (4) LAST FIRST INFO LINK INFO LINK INFO LINK INFO LINK Ilustrasi-2 10 17 12 25 Urutan insert (4) (3) (2) (1) Urutan delete (1) (2) (3) (4) Pertanyaan : Mana yang mengikuti prinsip STACK, dan mana yang mengikuti prinsip QUEUE, Linked List ilustrasi-1 atau Linked List ilustrasi-2

Yang akan dijelaskan, hanya satu macam Linked List, yaitu yang susunannya sebagai berikut : FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4)

FIRST LAST 25 12 17 10 (1) (2) (3) (4) INFO LINK INFO LINK INFO LINK

Setelah DELETE KIRI menjadi : FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Setelah DELETE KIRI menjadi : FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) (1) (2) (3)

free( ………. ) free( Q ); free( FIRST ); Instruksi untuk menDELETE sebuah simpul : free( ………. ) Nama pointer yang menunjuk simpul tersebut free( Q ); Contoh : Menghapus simpul yang ditunjuk oleh Pointer Q free( FIRST ); Menghapus simpul yang ditunjuk oleh Pointer FIRST

menghapus simpul yang ditunjuk oleh pointer FIRST LAST 3.08 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Kita coba dengan : free(FIRST); menghapus simpul yang ditunjuk oleh pointer FIRST

dengan : free(FIRST); FIRST LAST 3.08 25 12 17 10 (1) (2) (3) (4) INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) dengan : free(FIRST);

dengan : free(FIRST); FIRST LAST 3.08 12 17 10 (2) (3) (4) INFO LINK

dengan : free(FIRST); Simpul beserta dengan isinya dihapus FIRST LAST 3.08 INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) dengan : free(FIRST); Simpul beserta dengan isinya dihapus Field INFO berisi : 25 Field LINK berisi : &(2)

? FIRST = ………………; Kemudian memindahkan Pointer FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) Kemudian memindahkan Pointer FIRST Agar menunjuk simpul (2) Instruksi : ? FIRST = ………………;

? FIRST = ………………; Kemudian memindahkan Pointer FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) Kemudian memindahkan Pointer FIRST Agar menunjuk simpul (2) Instruksi : ? FIRST = ………………;

Tidak bisa Karena tak ada pointer yang menunjuk Simpul (2) FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) Memindahkan Pointer FIRST Agar menunjuk simpul (2) Instruksi : Tidak bisa Karena tak ada pointer yang menunjuk Simpul (2)

Gagal

Bagaimana kalau pointer FIRST Ditempatkan lebih dulu di simpul (2), LAST 3.08 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Bagaimana kalau pointer FIRST Ditempatkan lebih dulu di simpul (2), Baru simpul (1) dihapus FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4)

? FIRST = ………………; Memindahkan Pointer FIRST LAST 3.08 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Memindahkan Pointer FIRST Sehingga menunjuk simpul no (2) Instruksinya : ? FIRST = ………………;

? FIRST = ………………; Memindahkan Pointer FIRST LAST 3.08 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Memindahkan Pointer FIRST Sehingga menunjuk simpul no (2) Instruksinya : ? FIRST = ………………;

FIRST = FIRST->LINK; LAST 3.08 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Memindahkan Pointer FIRST Sehingga menunjuk simpul no (2) Instruksinya : FIRST = FIRST->LINK;

? free( ……… ); Setelah pointer FIRST menunjuk simpul (2), LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Setelah pointer FIRST menunjuk simpul (2), Kemudian barulah simpul (1) dihapus dengan instruksi : ? free( ……… );

? free( ……… ); Setelah pointer FIRST menunjuk simpul (2), LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) Setelah pointer FIRST menunjuk simpul (2), Kemudian barulah simpul (1) dihapus dengan instruksi : ? free( ……… );

Tidak bisa Karena tak ada pointer yang menunjuk Simpul (1) FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Tidak bisa Karena tak ada pointer yang menunjuk Simpul (1)

Gagal

Bagaimana caranya menghapus simpul (1) FIRST LAST 3.08 INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Jadi : Bagaimana caranya menghapus simpul (1) Kemudian FIRST menunjuk simpul (2) ? FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) (1) (2) (3)

cari cara lain

Gunakan pointer pembantu, misal pointer Q FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Gunakan pointer pembantu, misal pointer Q CARA - I : Ditempatkan menunjuk simpul (1) Q FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4)

? Q = ; Instruksi menempatkan pointer Q agar menunjuk simpul (1) FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi menempatkan pointer Q agar menunjuk simpul (1) adalah : ? Q = ;

? Q Q = ; Instruksi menempatkan pointer Q agar menunjuk simpul (1) FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi menempatkan pointer Q agar menunjuk simpul (1) adalah : ? Q = ;

Q Q = FIRST; Instruksi menempatkan pointer Q agar menunjuk simpul (1) LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi menempatkan pointer Q agar menunjuk simpul (1) adalah : Q = FIRST;

? Q FIRST = …………………; Instruksi memindahkan pointer FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi memindahkan pointer FIRST agar menunjuk simpul (2) adalah : ? FIRST = …………………;

? Q FIRST = …………………; Instruksi memindahkan pointer FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi memindahkan pointer FIRST agar menunjuk simpul (2) adalah : ? FIRST = …………………;

Q FIRST = Q->LINK; Instruksi memindahkan pointer FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi memindahkan pointer FIRST agar menunjuk simpul (2) adalah : FIRST = Q->LINK;

? Q free( ……… ); Kemudian menghapus Simpul (1) Instruksinya adalah : FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Kemudian menghapus Simpul (1) Instruksinya adalah : ? free( ……… );

? Q free( ……… ); Kemudian menghapus Simpul (1) Instruksinya adalah : FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) Kemudian menghapus Simpul (1) Instruksinya adalah : ? free( ……… );

Q free( Q ); Kemudian menghapus Simpul (1) Instruksinya adalah : FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (2) (3) (4) Kemudian menghapus Simpul (1) Instruksinya adalah : free( Q );

Q = FIRST; FIRST = Q->LINK; free(Q); FIRST LAST 25 12 17 10 (1) (2) INFO LINK INFO INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) FIRST LAST LINK INFO INFO LINK INFO LINK 12 17 10 (1) (2) (3) Kesimpulan : Untuk menghapus simpul (1) atau DELETE KIRI Diperlukan algoritma : Q = FIRST; FIRST = Q->LINK; free(Q);

X = FIRST->INFO; printf(“%i”, X); Q = FIRST; FIRST = Q->LINK; LAST 3.08 LINK INFO LINK INFO INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) FIRST LAST LINK INFO INFO LINK INFO LINK 12 17 10 (1) (2) (3) Apabila sebelum dihapus nilai INFO (25) Harus dicetak, maka perlu ditambah instruksi menjadi : X = FIRST->INFO; printf(“%i”, X); Q = FIRST; FIRST = Q->LINK; free(Q);

HASIL LANGKAH SATU PER SATU 3.08 PERHATIKAN HASIL LANGKAH SATU PER SATU

Keadaan awal : Q = FIRST; FIRST = Q->LINK; free(Q); 25 12 17 10 Q LAST INFO LINK INFO LINK INFO LINK INFO LINK Keadaan awal : 25 12 17 10 Q Hasilnya bila Dikenai instruksi : FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK Q = FIRST; 25 12 17 10 Q FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK FIRST = Q->LINK; 25 12 17 10 Q FIRST LAST free(Q); INFO LINK INFO LINK INFO LINK 12 17 10

cara-2

Gunakan pointer pembantu, misal pointer Q FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Gunakan pointer pembantu, misal pointer Q CARA - 2 : ditempatkan menunjuk simpul (2) FIRST Q LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4)

? Q = .......; Instruksi menempatkan pointer Q FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi menempatkan pointer Q agar menunjuk simpul (2) adalah : ? Q = .......;

? Q = .......; Instruksi menempatkan pointer Q FIRST Q LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi menempatkan pointer Q agar menunjuk simpul (2) adalah : ? Q = .......;

Q = FIRST->LINK; Instruksi menempatkan pointer Q LAST INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Instruksi menempatkan pointer Q agar menunjuk simpul (2) adalah : Q = FIRST->LINK;

? free(………… ); Menghapus Simpul (1) FIRST Q LAST 25 12 17 10 (1) (2) INFO LINK INFO LINK INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) Menghapus Simpul (1) ? free(………… );

? free(………….); Menghapus Simpul (1) FIRST Q LAST 12 17 10 (1) (2) (3) INFO LINK INFO LINK INFO LINK 12 17 10 (1) (2) (3) Menghapus Simpul (1) ? free(………….);

free(FIRST); Menghapus Simpul (1) FIRST Q LAST 12 17 10 (1) (2) (3) INFO LINK INFO LINK INFO LINK 12 17 10 (1) (2) (3) Menghapus Simpul (1) free(FIRST);

? FIRST = ………; Kemudian pindahkan pointer FIRST Q LAST INFO LINK INFO LINK INFO LINK 12 17 10 (1) (2) (3) Kemudian pindahkan pointer FIRST Sehingga menunjuk simpul awal Dengan instruksi : ? FIRST = ………;

? FIRST = ………; Kemudian pindahkan pointer FIRST Q LAST INFO LINK INFO LINK INFO LINK 12 17 10 (1) (2) (3) Kemudian pindahkan pointer FIRST Sehingga menunjuk simpul awal Dengan instruksi : ? FIRST = ………;

FIRST = Q ; Kemudian pindahkan pointer FIRST LAST INFO LINK INFO LINK INFO LINK 12 17 10 (1) (2) (3) Kemudian pindahkan pointer FIRST Sehingga menunjuk simpul awal Dengan instruksi : FIRST = Q ;

Keadaan akhir setelah DELETE KIRI FIRST Q LAST INFO LINK INFO LINK INFO LINK 12 17 10 (1) (2) (3) Keadaan akhir setelah DELETE KIRI Biarkan pointer Q tetap menunjuk simpul awal. Pointer Q tidak menggangu. Nanti akan digunakan untuk keperluan berikutnya

Q = FIRST->LINK; free(FIRST); FIRST = Q; FIRST LAST 25 12 17 10 (1) INFO LINK INFO INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) FIRST LAST LINK INFO INFO LINK INFO LINK 12 17 10 (1) (2) (3) Kesimpulan : Untuk menghapus simpul (1) atau DELETE KIRI Diperlukan algoritma : Q = FIRST->LINK; free(FIRST); FIRST = Q;

X = FIRST->INFO; printf(“%i”, X); Q = FIRST->LINK; free(FIRST); LAST 3.08 LINK INFO LINK INFO INFO LINK INFO LINK 25 12 17 10 (1) (2) (3) (4) FIRST LAST LINK INFO INFO LINK INFO LINK 12 17 10 (1) (2) (3) Apabila sebelum dihapus nilai INFO (25) Harus dicetak, maka perlu ditambah instruksi menjadi : X = FIRST->INFO; printf(“%i”, X); Q = FIRST->LINK; free(FIRST); FIRST = Q;

HASIL LANGKAH SATU PER SATU 3.08 PERHATIKAN HASIL LANGKAH SATU PER SATU

Keadaan awal : Q = FIRST->LINK; free(FIRST); FIRST = Q; 25 12 17 10 LAST INFO LINK INFO LINK INFO LINK INFO LINK Keadaan awal : 25 12 17 10 Hasilnya bila Dikenai instruksi : Q FIRST LAST INFO LINK INFO LINK INFO LINK INFO LINK Q = FIRST->LINK; 25 12 17 10 Q FIRST LAST INFO LINK INFO LINK INFO LINK free(FIRST); 12 17 10 FIRST Q LAST INFO LINK INFO LINK INFO LINK FIRST = Q; 12 17 10

Bersambung ke : Delete Kanan