Diktat_Prosedural_09_ADTRepresentasiListLinier

Dalam hal ini pemrogram melakukan simulasi pemakaian

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: setiap elemennya adalah elemen list yang diacu oleh alamat. Dalam hal ini, pemrogram melakukan simulasi pemakaian memori dan merealisasikan alokasi/dealokasi elemen sebagai bagian dari primitif struktur data list. Namun karena ukuran tabel harus didefiniskan pada kamus, pada dasarnya alokasi memori yang dilakukan adalah statis. KAMUS { List direpresentasi secara berkait dengan tabel } type InfoType : ... { terdefinisi } type ElmtList : < Info : InfoType, Next : address > type Address : integer [IndexMin..IndexMax, Nil] { TABEL MEMORI LIST, GLOBAL} constant IndexMin : integer = 1 constant IndexMax : integer = 100 constant Nil : integer = 0 { Nil : address tak terdefinisi, di luar [IndexMin..IndekMax] } TabElmt : array [IndexMin..IndexMax] of ElmtList FirstAvail : Address { alamat pertama list siap pakai } { Maka penulisan First(L) menjadi L.First Next(P) menjadi TabElmt[P].Next Info(P) menjadi TabElmt[P].Info } function MemFull { Mengirim true jika memori list sudah “habis” : FirstAvail=Nil } procedure InitTab { Inisialisasi tabel yang akan dipakai sebagai memori list } { I.S. Sembarang. } { F.S. TabElmt[IndexMin..IndexMax] siap dipakai sebagai elemen list berkait, Elemen pertama yang available adalah FirsAvail=1. Next(i)=i+1 untuk i[IndexMin..IndexMax-1], Next(IndexMax)=Nil } procedure AllocTab (output P : address) { Mengambil sebuah elemen siap pakai P pada awal list FirstAvail } { I.S. FirstAvail mungkin kosong. } { F.S. Jika FirstAvail tidak Nil, P adalah FirstAvail dan FirstAvail yang baru adalah Next(FirstAvail) } { Jika FirstAvail =Nil, P=Nil, tulis pesan 'Tidak tersedia lagi elemen siap pakai } procedure DeAllocTab (input P : address) { Mengembalikan sebuah elemen P pada awal list FirstAvail} { I.S. FirstAvail mungkin kosong. P tidak Nil } { F.S. FirstAvail = P } Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 3 Okt 2011 2 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB function MemFull { Mengirimkan true jika Memori sudah “habis”: FirstAval=Nil } KAMUS LOKAL ALGORITMA → (FirstAvail = Nil) procedure InitTab { Inisialisasi tabel yang akan dipakai sebagai memori list } { I.S. Sembarang } { F.S. TabElmt[IndexMin..IndekMax] terinisialiasi untuk dipakai sebagai elemen list berkait, elemen pertama yang available adalah FirstAvail=1. Next(i)=i+1 untuk i[IndexMin..IndexMax-1], Next(IndexMax)=Nil } KAMUS LOKAL P : address ALGORITMA P traversal [IndexMin..IndeksMax-1] Next(P) ← P + 1 Next(IndexMax) ← Nil FirstAvail ← IndexMin procedure AllocTab (output P : address) { Mengambil sebuah elemen siap pakai P pada awal list FirstAvail } { I.S. FirstAvail mungkin kosong. } { F.S. Jika FirstAvail tidak Nil, P adalah FirstAvail dan FirstAvail yang baru adalah Next(FirstAvail) } { Jika FirstAvail=Nil, tuliskan pesan 'Tidak tersedia lagi elemen siap pakai', P=Nil } KAMUS LOKAL ALGORITMA if (not MemFull) then P ← FirstAvail FirstAvail ← Next(FirstAvail) else output ("Tidak tersedia lagi elemen siap pakai") P ← Nil pro...
View Full Document

{[ snackBarMessage ]}

Ask a homework question - tutors are online