SINGLE LINKED LIST (Lanjutan) Pertemuan 4 IMAM SIBRO MALISI

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
Mata Kuliah : Struktur Data Pertemuan : V
LINKED LIST Single Linked List.
LINKED LIST.
Algoritma dan Struktur Data Daniel Riano Kaparang.
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2010
SENARAI BERANTAI TUNGGAL
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
QUEUE (antrian).
STACK.
PERTEMUAN 3 SINGLE LINKED LIST (Non Circular).
Queue.
STRUKTUR DATA (6) single linked list non circular
Single Linked List Yuliana Setiowati, S.Kom.
Queue.
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.
Algorithm and Data Structures.
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
Tenia Wahyuningrum, S.Kom. MT
Linear List.
Struktur Data List Linear : Linked List (Single Linkedlist)
LINKED LIST.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Struktur Data (Data Structure) – IS 2313
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan : Algoritma & Struktur Data
1 Pertemuan 3 Data Komposit Linked list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
KJ 332 : “ KEKUATAN SERTA PENGHIBURAN ” Syair:
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.
8. Singly Linear Linked List
LINKED LIST by Yohana N.
Single Linked List.
12. Doubly Linear Linked List
Algoritma dan Struktur Data
STRUKTUR DATA QUEUE (Antrian)
STACK (Tumpukan).
11. Singly Circular Linked List
QUEUE Pertemuan ke-6 T 0026.
Doubel Linked List.
Stack.
Algoritme dan Stuktur Data
STRUKTUR DATA (7) single linked list circular
Doubel Linked List.
Queue (Antrian).
Single Linked List Circular (SLLC)
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
Double Linked List.
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
QUEUE (Antrian).
SINGLE LINKED LIST (SLL)
Transcript presentasi:

SINGLE LINKED LIST (Lanjutan) Pertemuan 4 IMAM SIBRO MALISI

Single Linked List no n Circular Menggunakan Head dan Tail • Dibutuhkan dua variabel pointer : head dan tail • Head selalu menunjuk pada node pertama, sedangkan tail selalu menunjuk pada node terakhir. • Kelebihan dari Single Linked List dengan Head & Tail adalah pada penambahan data di belakang, hanya dibutuhkan tail yang mengikat node baru saja tanpa harus menggunakan perulangan pointer bantu. D A B C null FFF1 FFF2 FFF3 FFF4

Inisialisasi Linked List TNode *head, *tail; Fungsi Inisialisasi Linked List void init(){ head = NULL; tail = NULL; } Function untuk mengetahui kondisi LinkedList kosong / tidak int isEmpty(){ if(tail == NULL) return 1; else return 0;

Menambah Node di Dep an Dengan Head dan Tail vo id i n sert D epa n( i nt d at ab aru ) { T Nod e *b aru ; b aru = n ew T No de ; b aru - >d at a = da t aba ru ; b aru - >n ext = NUL L; i f (i sE m pt y( ) = =1) { h ead =t a il =b aru ; t ai l - >n ext = NUL L; } el se { bar u- > ne xt = h ea d; hea d = b aru ; p ri nt f ( ” Dat a ma suk \n ” ) ;

1. List masih kosong (heah=tail NULL) NULL head tail 2. Masuk data baru, misalny 5 head baru head

3. Datang data baru masalnya, 20 5 20 5 20 5

Menambah Node di Belakang Dengan Head dan Tail v oi d t am bah Bel ak ang ( i nt da t aba ru ){ T No de * bar u, *b an t u; b aru = ne w TN od e; b aru - >d at a = d at ab aru ; b aru - >n ex t = NU LL ; i f ( i sE mp ty ( ) ==1 ) { h ead =b aru ; t ai l= b aru ; t ai l -> ne xt = NUL L; } e ls e { ta il - >n ex t = b aru ; ta il = bar u; p ri n tf ( " Dat a ma su k\n “ ) ;

1. List masih kosong (head=tail=NULL) NULL head tail 2 1. List masih kosong (head=tail=NULL) NULL head tail 2. masukan data baru, misalnya 5 head baru head 5

3. datang data baru,misalya 20 5 5 20 5 20

Menghapus Node di Depan (Dengan Head dan Tail) • Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penunjukkan terlebih dahulu dengan pointer hapus pada head, kemudian dilakukan pergeseran head ke node berikutnya sehingga data setelah head menjadi head baru, kemudian menghapus pointer hapus dengan menggunakan perintah delete. • Jika tail masih NULL maka berarti list masih kosong!

voi d h apus Dep an( ) { T No de * hap u s; i n t d ; i f ( is E mpt y( ) = =0) { if ( h ead ! =t ai l ) { h apu s = he ad ; d = h ap us- > da t a; h ead = h ead - >n ext ; d ele t e h ap u s; } el se { d = t ai l - >d at a; h ead =t ai l= NUL L ; } pr in t f ( “ %d t erh ap us \n “ , d) ; } e ls e p ri n tf ( " M asi h k oso n g\ n“ ) ;

A B C D A B C D C D A B

Menghapus Node di Belakang (Den gan Head dan Tail • Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penunjukkan terlebih dahulu dengan variabel hapus pada tail. Jika tail masih NULL maka berarti list masih kosong! • Dibutuhkan pointer bantu untuk membantu pergeseran dari head ke node berikutnya sampai sebelum tail, sehingga tail dapat ditunjukkan ke bantu, dan bantu tersebut akan menjadi tail yang baru. • Setelah itu hapus pointer hapus dengan menggunakan perintah delete.

v oi d h a pus B e la k a ng( ) { TN od e. ba nt u, v oi d h a pus B e la k a ng( ) { TN od e *ba nt u, *ha pus ; in t d; if (i s Em pt y ( ) ==0 ) { ba n tu = he a d; i f( he a d! =t a il ) { w hil e (b an tu - >ne x t! =t a il ) { b an tu = ba nt u- >ne x t ; } h ap us = t ai l; t a il =ba nt u; d = ha pus - >da t a ; d el e t e ha pu s ; t a il - >ne x t = NU L L; }e l s e { d = ta i l- >da t a ; h ea d =ta i l=N U LL ; c ou t<< d<<" t e rha pus \ n"; } e l s e c ou t< <"M as i h k o so ng\ n";

A B C D A B C D A B C

Function untuk menghapus semu a elemen LinkedList dengan HEAD & TAIL v o id clear ( ) { TNo de *bantu ,* hapus ; bantu = head; whil e( bantu! = NULL ) hapus = bant u; bantu = bantu- > next ; delete hapus ; } head = NULL; tail = NULL ;

Latihan Soal I Struktur Data (Pertemuan 4) 1. Kelebihan dari Single Linked List dengan Head & Tail adalah : a. Penambahan data dibelakang b. Penambahan data didepan c. Penghapusan data dibelakang d. Penghapusan data didepan 2. Head dan Tail menunjuk pada node …. a. Head menunjuk node pertama, tail menunjuk node terakhir b. Head menunjuk node terakhir, tail menunjuk node pertama c. Head menunjuk node pertama, tail menunjuk node pertama d. Head menunjuk node terakhir, tail menunjuk node terakhir

3. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh c 3. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh c. Tidak dapat ditambah b. Kosong d. Baru 4. Gambar diatas menunjukkan bentuk penambahan node pada posisi : a. Belakang c. Tengah b. Depan d. Depan dan Belakang A B C D

5. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah …. a. head=tail c. bantu=head b. head=tail=null d. bantu=tail

Latihan II Soal Struktur Data (Review Materi Pertemuan 3 & Pertemuan 4) Buatlah Ilustrasi / Penggambaran untuk menambah dan menghapus node di posisi tengah pada : 1. Single Linked List dengan Head 2. Single Linked List dengan Head & Trail

SEKIAN Hati-hati menyeberang Jangan sampai titian patah Hati-hati di rantau orang Jangan sampai berbuat salah