【数据结构——遍历二叉树和线索二叉树】
目录
【数据结构——遍历二叉树和线索二叉树】
一、遍历二叉树
(一)遍历的三种规则
1、先序遍历
2、中序遍历
3、后序遍历
(二)遍历的相关算法
1、先序遍历建立二叉链表
2、统计二叉树中叶子结点的个数
3、求二叉树的深度
4、复制二叉树
5、统计二叉树中结点的个数
二、线索二叉树
-
1、相关概念
2、中序线索化算法
3、遍历中序线索二叉树
-
一、遍历二叉树
遍历的定义——指按某条搜索路线遍访每个结点且不重复(又称周游)
(一)遍历的三种规则
1、先序遍历
若二叉树为空,则:空操作
否则:
访问根结点(D);
先序遍历左子树(L);
先序遍历右子树(R);
void PreOrderTraverse(BiTree T){
if (T) //非空二叉树 {
printf("%d", T->data); //访问根结点 PreOrderTraverse(T->lchild); //递归遍历左子树 PreOrderTraverse(T->rchild); //递归遍历右子树 }}
2、中序遍历
若二叉树为空,则:空操作
否则:中序遍历左子树(L);
访问根结点(D);
中序遍历右子树(R);
void InOrderTraverse(BiTree T){
if (T) //非空二叉树 {
InOrderTraverse(T->lchild); //递归遍历左子树 printf("%d", T->data); //访问根结点 InOrderTraverse(T->rchild); //递归遍历右子树 }}
<