Double Linked List Circular

May 12, 2019 | Author: androalifrakhman | Category: N/A
Share Embed Donate


Short Description

Referensi Materi Kuliah...

Description

HANDOUT STRUKTUR DATA PRODI TEKNIK INFORMATIKA UKDW

by Antonius Rachmat C, S.Kom 

# NINE

DOUBLE LINKED LIST CIRCULAR PENGANTAR - Double Linked List Circular adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1 field pointer yang menunjuk pointer berikutnya ( next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field yang berisi data untuk node tersebut. - Double Linked List Circular pointer next dan prev nya menunjuk ke dirinya sendiri secara circular. BENTUK NODE DLLC

Pointer prev

Pointer next

data

Menempati alamat memori tertentu

Pengertian: Double : artinya field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next Linked List : artinya node-node tersebut saling terhubung satu sama lain. Circular : artinya pointer next dan prev-nya menunjuk ke dirinya sendiri

A

B

C

D

FFF1

FFF2

FFF3

FFF4

Ilustrasi Double Linked List Circular

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

HANDOUT STRUKTUR DATA PRODI TEKNIK INFORMATIKA UKDW

by Antonius Rachmat C, S.Kom 

- Setiap node node pada pada linked list mempunyai mempunyai field field yang berisi data data dan pointer ke node berikutnya & ke node sebelumnya - Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke dirinya sendiri. - Jika sudah lebih dari satu node, maka pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node sesudahnya.

PEMBUATAN DOUBLE LINKED LIST CIRCULAR Deklarasi node Dibuat dari struct berikut ini: typedef struct TNode{ int data; TNode *next; Tnode *prev; };

Penjelasan: - Pembuatan struct bernama TNode yang berisi 3 field, yaitu field data bertipe integer dan field next & prev yang bertipe pointer dari TNode - Setelah pembuatan pembuatan struct, buat buat variabel variabel haed yang bertipe bertipe pointer pointer dari TNode yang berguna sebagai kepala linked list.

Pembentukan node baru Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta alokasi memorinya, pointer prev dan next menunju ke dirinya sendiri. TNode *baru; baru = new TNode;

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

HANDOUT STRUKTUR DATA PRODI TEKNIK INFORMATIKA UKDW

by Antonius Rachmat C, S.Kom 

DOUBLE LINKED LIST CIRCULAR MENGGUNAKAN MENGGUNAKAN HEAD - Menggunakan 1 pointer head - Head selalu menunjuk node pertama A

FFF1

B

C

D

FFF2

FFF3

FFF4

head

Deklarasi Pointer Head Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju, melainkan harus melalui node pertama dalam linked list. Deklarasinya sebagai berikut: TNode *head; head

Fungsi Inisialisasi LinkedList void init(){

head = NULL;

NULL

}

Function untuk mengetahui kosong tidaknya LinkedList int

isEmpty(){ if(head == NULL) return 1; else return 0;

}

PENAMBAHAN DATA Penambahan data di depan Penambahan node baru akan dikaitan di node paling depan, namun pada saat

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

Titles you can't find anywhere else

Try Scribd FREE for 30 days to access over 125 million titles without ads or interruptions! Start Free Trial Cancel Anytime.

HANDOUT STRUKTUR DATA PRODI TEKNIK INFORMATIKA UKDW

by Antonius Rachmat C, S.Kom 

Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan. Dibutuhkan pointer bantu yang digunakan untuk menunjuk node terakhir (head->prev) yang akan digunakan untuk mengikat list dengan node terdepan. void insertDepan(int

databaru){ TNode *baru, *bantu; baru = new TNode; baru->data = databaru; baru->next = baru; baru->prev = baru;

if(isEmpty()==1){ head=baru; head->next = head; head->prev = head; } else { bantu = head->prev; baru->next = head; head->prev = baru; head = baru; head->prev = bantu; bantu->next = head; } coutnext = baru; baru->prev = baru;

if(isEmpty()==1){ head=baru; head->next = head; head->prev = head; } else { bantu=head->prev; bantu->next = baru; baru->prev = bantu; baru->next = head; head->prev = baru; } coutdata = databaru; baru->next = baru; baru->prev = baru; if(isEmpty()==1){ head=baru; tail=baru; head->next = head; head->prev = head; tail->next = tail; tail->prev = tail; } else { baru->next = head; head->prev = baru; head = baru; head->prev = tail; tail->next = head; } coutprev = tail; } cout
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF