Diktat_Prosedural_12_Pohon

Mengirimkan true jika p adalah pohon unerleft hanya

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: Left (P : BinTree) → boolean { Prekondisi: P tidak kosong. Mengirimkan true jika P adalah pohon unerleft: hanya mempunyai subpohon kiri } KAMUS LOKAL ALGORITMA → (Right(P) = Nil) and (Left(P) ≠ Nil) function IsUnerRight (P : BinTree) → boolean { Prekondisi: P tidak kosong. Mengirimkan true jika P adalah pohon unerright: hanya mempunyai subpohon kanan } KAMUS LOKAL ALGORITMA → (Left(P) = Nil) and (Right(P) ≠ Nil) function IsBiner (P : BinTree) → boolean { Prekondisi: P tidak kosong. Mengirimkan mempunyai subpohon kiri dan subpohon kanan} true jika P adalah pohon biner: KAMUS LOKAL ALGORITMA → (Left(P) ≠ Nil) and (Right(P) ≠ Nil) procedure PreOrder (input P : BinTree) { I.S. Pohon P terdefinisi } { F.S. Semua node pohon P sudah diproses secara PreOrder: akar, kiri, kanan } { Basis: Pohon kosong : tidak ada yang diproses } { Rekurens: Proses Akar(P); Proses secara Preorder (Left(P)); Proses secara Preorder (Right(P)) } KAMUS LOKAL ALGORITMA if (P = Nil) then {Basis-0} else { Rekurens, tidak kosong } Proses(P) PreOrder(Left(P)) PreOrder(Right(P)) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 8 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure InOrder (input P : BinTree) { I.S. Pohon P terdefinisi } { F.S. Semua node pohon P sudah diproses secara InOrder: kiri, akar, kanan } { Basis: Pohon kosong: tidak ada yang diproses } { Rekurens: Proses secara Inorder (Left(P)); Proses Akar(P); Proses secara Inorder (Right(P)) } KAMUS LOKAL ALGORITMA if (P = Nil) then { Basis 0 } else { Rekurens } InOrder(Left(P)) Proses(P) InOrder(Right(P)) procedure PostOrder (input P : BinTree) { I.S. Pohon P terdefinisi } { F.S. Semua node pohon P sudah diproses secara PostOrder: kiri, kanan, akar } { Basis: Pohon kosong: tidak ada yang diproses } { Rekurens: Proses secara Postorder(Left(P)); Proses secara Postorder (Right(P)); Proses Akar(P) } KAMUS LOKAL ALGORITMA if (P ≠ Nil) then { Basis 0} else { Rekurens } PostOrder(Left(P)) PostOrder(Right(P)) Proses(P) function Tinggi (R : BinTree) → integer { Pohon Biner mungkin kosong. Mengirim “height” yaitu tinggi dari pohon } { Basis: Pohon kosong: tingginya nol } { Rekurens: 1 + maksimum (Tinggi(Anak kiri), Tinggi(AnakKanan)) } KAMUS LOKAL ALGORITMA if (R = Nil) then { Basis 0 } →0 else { Rekurens } → 1 + max (Tinggi(Left(R)), Tinggi(Right(R))) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 9 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB function NBDaun (P : BinTree) → integer { Pohon Biner tidak mungkin kosong. Mengirimkan banyaknya daun pohon } { Basis: Pohon yang hanya mempunyai akar: 1 } { Rekurens: } { Punya anak kiri dan tidak punya anak kanan: NBDaun(Left(P)) } { Tidak Punya anak kiri dan punya anak kanan : NBDaun(Right(P)) } { Punya anak kiri dan punya anak kanan : NBDaun(Left(P)) + NBDaun(Right(P)) } KAMUS LOKAL ALGORITMA if (Left(P)=Nil) and (Right(P)=Nil) →1 else { Rekurens } depend on (P) Left(P)≠Nil and Right(P)=Nil Left(P)=Nil and Right(P)≠Nil Left(P)≠Nil and Right(P)≠Nil then { Basis 1 : akar } → NBDaun(Left(P)) → NBDaun(Right(P)) → NBDaun(Left(P))+NBDaun(Right(P)) function Tree(X : infotype, L, R : BinTree) → BinTree { Menghasilkan sebuah tree, jika alokasi berhasil P } KAMUS LOKAL P : address ALGORITMA P ← Alokasi(X) if (P ≠ Nil) then...
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