构建树:
typedef struct Node
{
int data;
Node *lchild;
Node *rchild;
}Node;
class Tree
{
public:
Node *root;
Tree(int data);
Node *maketree(Node *father,int data,int side);
};
Tree::Tree(int data)
{
Node *newnode=new Node;
root=newnode;
root->data=data;
root->lchild=NULL;
root->rchild=NULL;
}
Node *Tree::maketree(Node *father,int data,int side)
{
Node *newnode=new Node;
newnode->data=data;
newnode->lchild=NULL;
newnode->rchild=NULL;
if(side==0)
{
father->lchild=newnode;
}
else
{
father->rchild=newnode;
}
return newnode;
}
前序遍历:
void front_display(Node *start)
{
cout<<start->data<<' ';
if(start->lchild)
{
front_display(start->lchild);
}
if(start->rchild)
{
front_display(start->rchild);
}
}
中序遍历:
void middle_display(Node *start)
{
if(start->lchild)
{
middle_display(start->lchild);
}
cout<<start->data<<' ';
if(start->rchild)
{
middle_display(start->rchild);
}
}
后序遍历:
void last_display(Node *start)
{
if(start->lchild)
{
last_display(start->lchild);
}
if(start->rchild)
{
last_display(start->rchild);
}
cout<<start->data<<' ';
}
未经允许,不得转载!