4.3.1二叉树的遍历
二叉树的遍历,是指按某搜索路径访问树中的每个结点,使得每个结点均被访问一次,而且仅被访问一次。
按照先遍历左子树再遍历右子树的原则,常见的遍历次序有先序,中序和后序三种遍历算法。
5,层次遍历
要层次遍历需要借助一个队列。 先将二叉树根结点入队,然后出队,访问该结点,如果有左子树,则将左子树根结点入队;
如果它有右子树,则将右子树根结点入队,然后出队,对出队结点访问,如此反复,直到队列为空。
4.3.2 线索二叉树
1,线索二叉树的基本概念
遍历二叉树就是以一定的规则将二叉树中的结点排列成一个线性序列,从而得到二叉树结点的各种遍历序列。其实质就是将一个非线性结构进行线性化操作,使在这个访问序列中每一个结点都有一个前驱和直接后继。
引入线索二叉树是为了加快查找结点前驱和后继的速度。
2,线索二叉树的构造
实质上就是遍历一次二叉树,只是在遍历的过程中,检查当前结点左右指针域是否为空,若为空,将它们改为指向前驱结点或后继结点的线索。