Diktat_Prosedural_09_ADTRepresentasiListLinier

S firstavail mungkin kosong p nil fs firstavail p

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: cedure DeAllocTab (input P : address) { Mengembalikan sebuah elemen P pada awal list FirstAvail } { I.S. FirstAvail mungkin kosong. P ≠ Nil } { F.S. FirstAvail = P } KAMUS LOKAL ALGORITMA Next(P) ← FirstAvail FirstAvail ← P Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 3 Okt 2011 3 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Ilustrasi dari urut-urutan pemanggilan dan status pemakaian memori list tersebut dapat dilihat pada Gambar berikut. Perhatikan bahwa satu tabel memori yang sama dapat dipakai oleh satu atau beberapa list, jika elemen listnya sama. Satu elemen tabel pada suatu saat hanya dapat menjadi elemen sebuah list tertentu, namun pada saat lain dapat menjadi elemen list manapun. Satu elemen dapat dipakai secara “bergiliran” oleh beberapa list. FirstAvail FirstAvail 1 2 3 1 2 3 4 5 6 4 5 6 7 8 9 10 FirstList 7 8 9 10 List Terpakai 2 Elemen Keadaan Awal FirstList 1 2 Beberapa contoh keadaan list: FirstAvail L2 1 2 FirstAvail 6 7 3 3 4 L1 5 10 6 L1 7 8 9 10 L2 4 9 8 5 1 2 Perhatikan bahwa representasi seperti tabel di sebelah kiri sangat “kusut”. Untuk selanjutnya, dipakai representasi lojik seperti di kanan karena lebih jelas. Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 3 Okt 2011 4 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB Representasi Fisik List Linier secara KONTIGU Dengan representasi fisik kontigu, satu-satunya struktur data yang dapat menyimpannya adalah tabel, karena hanya tabel yang mempunyai struktur kontigu. Setiap elemen tabel mengandung informasi info, sedangkan informasi mengenai Next tidak perlu lagi disimpan secara eksplisit, karena secara implisit sudah tersirat dalam struktur data yang menjadi tempat penyimpanannya. Elemen terakhir tidak mungkin dikenali dari NEXT, karena NEXT tidak disimpan secara eksplisit. Satu-satunya cara untuk mengetahui elemen terakhir adalah dari alamatnya: P = N, dengan N adalah lokasi pada tabel tempat menyimpan elemen terakhir. Karena alamat elemen terakhir harus diketahui secara eksplisit, maka representasi list bukan murni seperti di atas, tetapi harus mengandung First(L) dan Last(L), seperti yang pernah dibahas pada Queue. Lihat Bab variasi representasi list. Representasi fisik list linier secara kontigu dengan TABEL adalah: { List direpresentasi pada tabel secara kontigu} KAMUS constant IndexMin : integer = 1 constant IndexMax : integer = 100 constant Nil : integer = 0 type type type type InfoType : ... { Elemen Type : terdefinisi } ElmtList : < info : InfoType > Address : integer [IndexMin..IndexMax, Nil] List : < TabElmtList : array [IndexMin..IndexMax] of ElmtList First : Address Last : Address > { Last: alamat elemen terakhir. Karena field NEXT tidak ada secara eksplisit, maka elemen terakhir dikenali dengan address-nya } { Deklarasi nama untuk variabel kerja } L : List P : address {address untuk traversal } { Maka First(L)..Last(L) adalah indeks efektif elemen tab...
View Full Document

Ask a homework question - tutors are online