double linked list 10109772 ari tri hernawan if17k (1)

6
Ari Tri Hernawan 10109772 IF17K 1. Sisip Depan Procedure SisipDepanDouble(Input elemen:tipedata, I/O awal,akhir: nama_pointer) {I.S. : data yang akan disisipkan (elemen), pointer penunjuk awal dan pointer penunjuk akhir sudah terdifinisi} {F.S. : menghasilkan satu simpul yang disisipkan di depan pada double linked list} Kamus : Baru : nama_pointer Algoritma : alloc(baru) baru↑.info elemen baru↑.prev nil baru↑.next nil if (awal = nil) then akhir baru else baru↑.next awal awal↑.prev baru endif awal baru endprocedure 2. Sisip Belakang Procedure SisipBelakangDouble(Input elemen:tipedata, I/O awal, akhir: nama_pointer) {I.S. : data yang disisipkan(elemen), pointer penuntuk awal dan pointer penunjuk akhir sudah terdefinisi} {F.S. : menghasilkan satu simpul yang disisipkan dibelakang pada double linked list} Kamus : Baru : nama_pointer

Upload: dukadeui

Post on 27-Aug-2014

145 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Double Linked List 10109772 Ari Tri Hernawan IF17K (1)

Ari Tri Hernawan10109772

IF17K

1. Sisip Depan

Procedure SisipDepanDouble(Input elemen:tipedata, I/O awal,akhir: nama_pointer){I.S. : data yang akan disisipkan (elemen), pointer penunjuk awal

dan pointer penunjuk akhir sudah terdifinisi}{F.S. : menghasilkan satu simpul yang disisipkan di depan pada

double linked list}

Kamus :Baru : nama_pointer

Algoritma:alloc(baru)baru↑.info elemenbaru↑.prev nilbaru↑.next nilif (awal = nil)

thenakhir baru

elsebaru↑.next awalawal↑.prev baru

endifawal baru

endprocedure

2. Sisip Belakang

Procedure SisipBelakangDouble(Input elemen:tipedata, I/O awal, akhir: nama_pointer){I.S. : data yang disisipkan(elemen), pointer penuntuk awal dan

pointer penunjuk akhir sudah terdefinisi}{F.S. : menghasilkan satu simpul yang disisipkan dibelakang pada

double linked list}

Kamus: Baru : nama_pointer

Algoritma:Alloc(baru)baru↑.prev nilbaru↑.next nilbaru↑.info elemenif (awal = nil)

thenawal baruakhir baru

Page 2: Double Linked List 10109772 Ari Tri Hernawan IF17K (1)

Ari Tri Hernawan10109772

IF17K

elsebaru↑.prev akhirakhir↑.next baru

endifakhir baru

endprocedure

3. Sisip Tengah

Procedure SisipTengahDouble(Input elemen:tipedata, I/O awal, akhir : nama_pointer){I.S. : data yang akan disisipkan(elemen), pointer penunjuk awal dan

pointer penunjuk akhir sudah terdifinisi}{F.S. : menghasilkan satu simpul yang disisipkan di tengah pada

double linked list}

Kamus:Baru,bantu: nama_pointerpos: tipedata

Algoritma:If ((awal = nil) or (posisi <= 1))

thenSisipDepanDouble (elemen,awal,akhir)

Elsebantu awalPos 1While ((pos<posisi) and (bantu ≠ nil)) do

Bantu bantu↑.nextPos pos + 1

EndwhileIf (bantu = nil)

thenSisipBelakangDouble (elemen,awal,akhir)

ElseAlloc(baru)baru↑.info elemenbaru↑.next bantubaru↑.prev bantu↑.prevbantu↑.prev↑.next barubantu↑.prev baru

endifendif

endprocedure

Page 3: Double Linked List 10109772 Ari Tri Hernawan IF17K (1)

Ari Tri Hernawan10109772

IF17K

4. Hapus Depan

Procedure HapusDepanDouble(Output elemen:tipedata, I/O awal, akhir : nama_pointer){I.S. : pointer penunjuk awal dan pointer penunjuk akhir sudah

terdefinisi}{F.S. : menghasilkan double linked list yang sudah dihapus satu

simpul di depan}

Kamus:Phapus : nama_pointer

Algoritma:If (awal = nil)

thenOutput(‘Data kosong, tidak bisa dihapus’)

elsePhapus awalElemen phapus↑.infoIf (awal = akhir)

thenAwal nilAkhir nil

ElseAwal awal↑.nextawal↑.prev nil

endifDealloc(phapus)

endifendprocedure

5. Hapus Belakang

Procedure HapusBelakangDouble(Output elemen:tipedata, I/O awal, akhir : nama_pointer){I.S. : pointer penunjuk awal dan pointer penunjuk akhir sudah

terdefinisi}{F.S. : menghasilkan double linked list yang sudah dihapus satu

simpul di belakang}

Kamus:Phapus: nama_pointer

Algoritma:If (awal = nil)

Page 4: Double Linked List 10109772 Ari Tri Hernawan IF17K (1)

Ari Tri Hernawan10109772

IF17K

ThenOutput(‘Data kosong, tidak bisa dihapus’)

ElsePhapus akhirElemen phapus↑.infoIf (awal=akhir)

thenAwal nilAkhir nil

ElseAkhir akhir↑.prevakhir↑.next nil

endifdealloc(phapus)

endifendprocedure

6. Hapus Tengah

Procedure HapusTengahDouble(Output elemen:tipedata, I/O awal, akhir : nama_pointer){I.S. : pointer penunjuk awal dan pointer penunjuk akhir sudah

terdefinisi}{F.S. : menghasilkan double linked list yang sudah dihapus satu

simpul di tengah}

Kamus :Phapus, bantu : nama_pointerI : tipedata

Algoritma:If ((awal = nil) or (posisi < 1))

ThenOutput(‘Data kosong atau posisi kurang dari 1, tidak bisa

dihapus’)Else

If (posisi = 1)Then

HapusDepanDouble(elemen,awal,akhir)Else

Bantu awalI 1While ((I < posisi) and (bantu ≠ nil)) do

Bantu bantu↑.nextI I + 1

EndwhileIf (bantu = nil)

Then

Page 5: Double Linked List 10109772 Ari Tri Hernawan IF17K (1)

Ari Tri Hernawan10109772

IF17K

Output(‘Posisi diluar jangkauan’)Else

If (bantu = akhir)Then

HapusBelakangDouble(elemen,awal,akhir)Else

Bantu phapusphapus↑.prev↑.next bantu↑.prevphapus↑.next↑.prev bantu↑.nextdealloc(phapus)

endifendif

endifendif

endprocedure