Program 9
type
bst{
int a;
bst left;
bst right;
}
endtype
decl
int in,opt;
bst insert(bst h, int key);
int inOrder(bst h);
int preOrder(bst h);
int postOrder(bst h);
enddecl
bst insert(bst h, int key)
{
begin
if (h == null) then
h = alloc();
h.a = key;
h.left = null;
h.right = null;
else if (key < h.a) then
h.left = insert(h.left, key);
else if (key > h.a) then
h.right = insert(h.right, key);
endif;
endif;
endif;
return h;
end
}
int inOrder(bst h){
begin
if(h!=null) then
in=inOrder(h.left);
write(h.a);
in=inOrder(h.right);
endif;
return 1;
end
}
int preOrder(bst h){
begin
if(h!=null) then
write(h.a);
in=preOrder(h.left);
in=preOrder(h.right);
endif;
return 1;
end
}
int postOrder(bst h){
begin
if(h!=null) then
in=postOrder(h.left);
in=postOrder(h.right);
write(h.a);
endif;
return 1;
end
}
int main()
{
decl
int val,flag;
bst Root;
enddecl
begin
val = initialize();
Root = null;
read(val);
while(val!=0) do
Root = insert(Root,val);
read(val);
endwhile;
in = inOrder(Root);
in = preOrder(Root);
in = postOrder(Root);
return 9;
end
}