先序遍历:(先左后右)
|
先左树再右树遍历 void PreOrderTraverse(BitTree T)
{
if(T)
{
cout<<T->data<<endl;
PreOrderTraverse(T->left);
PreOrderTraverse(T->right);
}
}
先序遍历很有点类似于栈,可以用栈来模拟: /*这里的树结点是通过栈来建立的,只用于普通测试*/
void g(TreeNode *root)
{
TreeNode * stack[MaxSize];
int top;
TreeNode *p;
top=0;
p=root;
while(p!=NULL || top>0)
{
while(p!=NULL)
{
cout<<(*p).val<<endl;
stack[top++]=p;
p=(*p).left;
};
if(top>0)
{
p=stack[--top];
p=(*p).right;
}
}
}
|
中序遍历:
| 444 |
后序遍历:

浙公网安备 33010602011771号