You are on page 1of 2

/*Preorder,Inorder,Postorder traversal*/ Program: #include<iostream.h> #include<conio.

h> class tree { int i,no,node[20]; public: tree(); void preorder(int); void inorder(int); void postorder(int); }; tree::tree() { cout<<"Enter the no. of Nodes: "; cin>>no; cout<<"Enter the root node: "; cin>>node[1]; for(i=1;i<=no;i++) { if(2*i<=no) { cout<<"Left child of node"<<i<<": "; cin>>node[2*i]; } else node[2*i]=0; if(2*i+1<=no) { cout<<"Right child of node"<<i<<":"; cin>>node[2*i+1]; } else node[2*i+1]=0; } } void tree::preorder(int j) { if(node[j]!=0) { cout<<node[j]<<" "; preorder(2*j); preorder(2*j+1); } return; } void tree::inorder(int j) { if(node[j]!=0) {

inorder(2*j); cout<<node[j]<<" "; inorder(2*j+1); } return; } void tree::postorder(int j) { if(node[j]!=0) { postorder(2*j); postorder(2*j+1); cout<<node[j]<<" "; } return; } void main() { clrscr(); tree t; cout<<"\nPreorder: "; t.preorder(1); cout<<"\nInorder: "; t.inorder(1); cout<<"\nPostorder: "; t.postorder(1); getch(); } Output: Enter the no. of Nodes: 7 Enter the root node: 1 Left child of node1: 2 Right child of node1:3 Left child of node2: 4 Right child of node2:5 Left child of node3: 6 Right child of node3:7 Preorder: 1 2 4 5 3 6 7 Inorder: 4 2 5 1 6 3 7 Postorder: 4 5 2 6 7 3 1

You might also like