若用二叉链表作为二叉树的存储表示,试针对以下问题编写递归算法:(1)统计二叉树中叶结点的个数。(2)以二叉树为参数,交换每个结点的左子女和右子女。
第1题
1的结点个数。
(2)统计二叉树中度为2的结点个数。
(3)统计二叉树中度为0(叶结点)的结点个数。
(4)统计二叉树的深度。
(5)统计二叉树的宽度,即在二叉树的各层上,具有结点数最多的那一层上结点总数。
(6)从二叉树中删去所有叶结点。
(7)计算二叉树中指定结点*p所在层次。
(8)计算二叉树中各结点中的最大元素的值。
(9)以前序次序输出一棵二叉树所有结点的数据值及结点所在的层次。
第2题
以二叉链表作为二叉树的存储结构,编写以下算法:
(1)统计二叉树的叶结点个数。
(2)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。
(3)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。
(4)用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。
(5)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
(6)输出二叉树中从每个叶子结点到根结点的路径。
第4题
根结点的数据,LT和RT是括号形式的左子树和右子树。要求空树不打印任何信息,一个结点的树的打印形式是x,而不应是(x,)的形式。
第6题
针对一棵序线索二叉树:
(1)编写算法,实现二叉树到后序线索二叉树的转换;
(2)编写算法,求以t为根的子树的后序下的第一个结点;
(3)编写算法,求以t为根的子树的后序下的最后一个结点;
(4)编写算法,求结点t的后序下的后继结点;
(5)编写算法,求结点t的后序下的前驱结点;
(6)编写算法,实现后序线索二叉树的后序遍历
第10题
针对一棵前序线索二叉树:
(1)仿照中序线家二叉树,定义前序线索二叉树的类结构;
(2)编写算法,实现二叉树到前序线索二叉树的转换;
(3)编写算法,在以1为根的子树中求指定结点p的父结点;
(4)编写算法,求以t为根的子树的前序下的第一个结点
(5)编写算法,求以t为根的子树的前序下的最后一个结点;
(6)编写算法,求结点t的前序下的后继结点:
(7)编写算法,求结点t的前序下的前驱结点;
(8)编写算法,实现前序线索二叉树的前序遍历.
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!