Diktat_Prosedural_13_StudiKasus

Terurut mengecil menurut degree catat address

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: yimpan hasilnya di P1, P1 ≠ P } ALGORITMA { Sama dengan untuk representasi kontigu } procedure InitListPol (output P : Polinom) { I.S. sembarang; F.S. P polinom kosong terbentuk} { Membuat polinom kosong } KAMUS LOKAL ALGORITMA P ← Nil { Definisi Polinom kosong } Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 14 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure CreateListPol (output P1 : Polinom) { I.S. : sembarang } { F.S. : Polinom P terdefinisi derajat dan koefisien-koefisiennya jika tidak "kosong" } { Mengisi list polinom P1 } KAMUS LOKAL Deg, Coef Pt, PrecPt PNew Found : : : : integer address address boolean { input pasangan data derajat dan koefisien } { address traversal, PrecPt adalah sebelum Pt } { address alokasi, yang nantinya disisipkan } ALGORITMA { Skema proses sekuensial tanpa penanganan kasus kosong } InitListPol(P1) input (Deg, Coef) { Input data } while (Deg ≠ -999) do AllocSuku(PNew) { Alokasi sebuah suku polinom } Degree(PNew) ← Deg; Coefficient(PNew) ← Coef; Next(PNew)← Nil { Search tempat yang tepat, suku terurut mengecil menurut Degree } { Catat address sebelumnya untuk penyisipan } Pt ← P1; PrecPt ← Nil; Found ← false while (Pt ≠ Nil) and (not Found) do if Deg ≥ Degree(Pt) then Found ← true else PrecPt ← Pt; Pt ← Next(Pt) { Found : Deg ≥ Degree(Pt) or Pt = Nil, sisipkan P1 setelah PrecPt } if Deg > Degree(Pt) then depend on PrecPt PrecPt = Nil : { insert first } Next(PNew) ← P1; P1 ← PNew PrecPt ≠ Nil : { insert after PrecPt } Next(PNew) ← Next(PrecPt); Next(PrecPt) ← PNew { else error, duplikasi suku dengan derajat sama : tidak diproses } input (Deg, Coef) { Next input data } Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 15 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure TulisListPol (input P : polinom) { I.S. : P terdefinisi dan mungkin kosong } { F.S. : Menulis polinom P sesuai dengan spesifikasi } KAMUS LOKAL Pt : address { address traversal list } ALGORITMA { Traversal list P dengan skema pemrosesan dengan penanganan kasus kosong, tulis setiap suku } Pt ← P if ( Pt = Nil) then output ("Polinom kosong") else output ("I","P(I)") { Inisialisasi, tulis judul } repeat output (Degree(Pt), Coefficient(Pt)) Pt ← Next(Pt) until (Pt = Nil) procedure InsertLast (input Deg, Coef : integer, input/output P : polinom, input/output Last : address) { I.S. : P mungkin kosong, <Deg, Coef> adalah derajat dan koefisien suku yang akan di-insert sebagai elemen terakhir } { F.S. : <Deg,Coeff> di-copy ke dalam elemen yang ditunjuk PNew, PNew di-insert sebagai elemen terakhir P, Last menunjuk elemen terakhir } { Alokasi elemen baru dianggap selalu berhasil } KAMUS LOKAL PNew : address ALGORITMA AllocSuku(PNew) Degree(PNew) ← Deg Coefficient(PNew) ← Coef Next(PNew) ← Nil if (P = Nil) then { insert first } P ← PNew else { insert after Last } Next(Last) ← PNew Last ← PNew Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 16 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure AddListPol...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online