Membuat Pohon Biner (Binary Tree)

Pohon (tree) merupakan struktur data tak linier yang mempunyai sifat-sifat dan ciri-ciri khusus. Struktur ini biasanya digunakan untuk menggambarkan huubungan yang bersifat hirarki antara lemen-elemen yang ada.

Pohon biner (binary tree) bisa didefinisikan sebagai suatu kumpulan simpul yang mungkin kosong atau mempunyai akar dan dua sub pohon yang saling terpisah yang disebut dengan subpohon kiri (left subtree) dan sub pohon kanan (right subtree). Sub pohohn juga disebut dengan cabang. Karakteristik yang dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya mempunyai dua bauh anak. Dengan kata lain, derajat tertinggi dari setiap simpul dalam pohon adalah dua. Karakteristik yang lain adalah pohon biner dimungkinkan tidak mempunyai simpul.

Contoh program pohon biner untuk menampilkan preorder, inorder dan postorder:

uses crt;
type pohon=^simpul;
    simpul=record
    data:integer;
    kiri,kanan:pohon
    end;
var
    T:pohon;
    info:integer;
procedure MASUK(info:integer;var T:pohon);
var
    b:pohon;
begin
if T=nil then
begin
new (b);
b^.data:=info;
b^.kiri:=nil;
b^.kanan:=nil;
T:=b;
end
else
begin
if T^.data>info then
MASUK(info,T^.kiri)
else
MASUK(info,T^.kanan);
end;end;
Procedure PREORDER(b:pohon);
begin
if b <> nil then
begin
write(b^.data, ' ');
PREORDER(b^.kiri);
PREORDER(b^.kanan);
end;end;
Procedure INORDER(b:pohon);
begin
if (b<>nil)then
begin
INORDER(b^.kiri);
write(b^.data, ' ');
INORDER(b^.kanan);
end;end;
Procedure POSTORDER(b:pohon);
begin
if b <> nil then
begin
POSTORDER(b^.kiri);
POSTORDER(b^.kanan);
write(b^.data, ' ');
end;end;
{Program utama}
begin
clrscr;
new(T);
T^.kiri:=nil;
T^.kanan:=nil;
writeln('masukkan data kedalam pohon');
repeat
write('nilai data= ');
readln(info);
if info <>0 then MASUK(info,T);
until info=0;
writeln; readln;
writeln('Pembacaan secara pre order');
PREORDER(T);
writeln; readln;
writeln('pembacaan secara in order');
INORDER (T);
writeln; readln;
writeln('pembacaan secara post order');
POSTORDER (T);
writeln; readln;
end.