习题7
7.1 已知一棵二叉树如图7.12所示,试求:
- 该二叉树前序、中序和后序遍历的结果;
- 该二叉树是否是满二叉树?是否是完全二叉树?
- 将它转换成对应的树或森林;
- 这棵二叉树的深度为多少?
- 试对该二叉树进行前序线索化;
- 试对该二叉树进行中序线索化。
7.2 试述树和二叉树的主要区别。
7.3 试分别画出具有3个结点的树和具有3个结点的二叉树的所有不同形态。
7.4 已知一棵二叉树的中序遍历的结果为:ABCEFGHD,后序遍历的结果为:ABFHGEDC,
请画出此二叉树。
7.5 已知一棵二叉树的前序遍历的结果为:ABCDEF,中序遍历的结果为:CBAEDF,请画出此二叉树。
7.6 若一棵二叉树的左、右子树均有3个结点,其左子树的前序序列与中序序列相同,右子树的中序序列与后序序列相同,试画出该二叉树。
7.7 试分别采用递归和非递归方式编写两个函数,求一棵给定二叉树中叶子结点的个数。
7.8 试编写一个函数,将一棵给定二叉树中所有结点的左、右子女互换。
7.9 试编写一个函数,判断一棵给定二叉树是否为完全二叉树。
7.10 试编写一个函数,返回一棵给定二叉树在中序遍历下的最后一个结点。
7.11 试编写一个函数,返回一棵给定二叉树在前序遍历下的最后一个结点。
7.12 试编写一个函数,返回一棵给定二叉树在后序遍历下的第一个结点。
7.13 假设二叉树采用链接方式存储,root为其根结点,p指向二叉树中的任意一个结点,编写一个求从根结点到p所指结点之间路径长度的函数。
7.14 假设二叉树采用链接方式存储,root为其根结点,p和q分别指向二叉树中任意两个结点,编写一个函数,返回它们最近的共同祖先。
7.15 假设二叉树采用链接方式存储,设计一个算法求二叉树中指定结点所在的层数。 |