二叉树的遍历指对二叉树的每个节点做且仅做一次访问的搜索方式,一般情况下,我们对二叉树的遍历分为3种方法,即前序,中序、后序遍历方法,下附图文介绍
前序遍历:
前序遍历是指将二叉树以先根,再左孩子,后右孩子的顺序进行访问的遍历方式
图解:
示例代码:
void pre(Tree t)
{
if(t!=null)
{
//printf("%c ",t->data); //此处输出
pre(t->lchild);
pre(t->rchild);
}
}
中序遍历:
中序遍历是指将二叉树以先左、再中、后右的方式访问的遍历方式
图解:
示例代码:
void in(Tree t)
{
if(t!=null)
{
in(T->lchild);
//printf("%c ",t->data); //此处输出
in(t->rchild);
}
}
后序遍历:
后序遍历的顺序则是遵循先左、再右、然后父节点的遍历方式,(更正,正确顺序为DEBFGCA)(画图时出现了错误,这还是上数据结构时记的笔记,数据结构没挂我真是幸运)(感谢1楼无名大侠的指正)
图解:
示例代码:
void post(Tree t)
{
if(t!=null)
{
post(t->lchild);
post(t->rchild);
//printf("%c ",t->data); //此处输出
}
}