学习了二叉树中的遍历与线索化。
树的遍历:就是按某种次序访问树中的结点,要求树中每个结点访问一次且仅访问一次。
遍历方式:先序遍历、中序遍历、后序遍历。
_
先序遍历:1、访问根节点 2、按先序遍历左子树 3、按先序遍历右子树
中序遍历:1、按中序遍历左子树 2、访问根节点 3、按中序遍历右子树
后序遍历:1、按后序遍历左子树 2、按后序遍历右子树 3、访问根节点
_
先序遍历代码 根 左 右
void preorder(bitree root)
{
if(root!=null)
{
visit(root->data);
preorder(root->lchild);
preorder(root->rchild);
}
}
中序遍历代码 左 根 右
void inorder(bitree root)
{
if(root!=null)
{
inorder(root->lchild);
visit(root->data);
inorder(root->rchild);
}
}
后序遍历代码 左 右 根
void postorder(bitree root)
{
if(root!=null)
{
postorder(root->lchild);
postorder(root->rchild);
visit(root->data);
}
}