二叉树的三种遍历方法:
前序遍历:
根节点->左子树->右子树(根节点在前面)(ABDFECGHI)
代码实现:
void pre_traverse(BTree pTree)
{
if(PtRee)
{
printf("%c ",pTree->data);
if(pTree->pLchild)
pre_traverse(pTree->pLchild);
if(pTree->pRchild)
pre_traverse(pTree->pRchild);
}
}
中序遍历:
按照左子树->根节点->右子树的顺序访问(DBEFGHCI)
代码实现:
void in_traverse(Tree tree)
{
if(tree)
{
if(tree->left)
in_traverse(tree->left);
printf("%c ",tree->data);
if(tree->right)
in_traverse(tree->right);
}
}
后序遍历:
按照左子树->右子树–>根节点的顺序访问(DEFBHGIC)
代码实现:
void beh_traverse(Tree tree)
{
if(tree)
{
if(tree->left)
beh_traverse(tree->left);
if(tree->right)
beh_traverse(tree->right);
printf("%c ",tree->data);
}
}
(遍历代码均为递归方法)