软考:数据结构基础——二叉树三种遍历顺序
一、二叉树的先序遍历
规则,从根节点开始,优先访问每一个左孩子,每次访问都要输出数据
示例,先序遍历的顺序
下图节点的编号都代表着他们被访问的次序
void preOrder(BiTree T){ if(T != NULL){ printf("%d \n",T->data); preOrder(T->lchild); preOrder(T->rchild); } }
二、中序遍历二叉树
从根节点开始,优先访问左孩子,当一个双亲节点的左孩子的所有节点被访问完时,访问这个双亲节点,之后访问它的右孩子,它的右孩子的左孩子的所有节点被访问完时才能访问它
太绕了我要死了。
示例
void inOrder(BiTree T){ if(T != NULL){ inOrder(T->lchild); printf("%d \n",T->data); inOrder(T->rchild); } }
三、后序遍历二叉树
当一个双亲节点的所有子节点都被访问完时,才访问这个双亲节点,访问这些子节点都是优先访问左孩子节点
void postOrder(BiTree T){ if(T != NULL){ postOrder(T->lchild); postOrder(T->rchild); printf("%d \n",T->data); } }