![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
文章平均质量分 77
Sunny君
这个作者很懒,什么都没留下…
展开
-
二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。如下图,左边的二叉搜索树,则输出转换之后的排序双向链表。二叉树的结点定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}原创 2018-01-09 16:49:47 · 151 阅读 · 0 评论 -
树的子结构
题目:输入两棵二叉树A和B,判断B是不是A的子结构。分析:要查找数A中是否存在数B结构一样的二叉树,分为两步,第一步是在数A中查找和B的根结点的值一样的结点R,第二步再判断树A中以R为根结点的子树是不是包含和树B一样的结构。测试用例:功能测试(树A和树B都是普通的二叉树,树B是或者不是树A的子结构)特殊输入测试(两棵二叉树中的一个或者两个根结点为NULL指针、二叉树的所有结点都没有原创 2018-01-05 15:52:51 · 109 阅读 · 0 评论 -
二叉树的镜像
题目:完成一个函数,输入一个二叉树,该函数输出它的镜像分析:交换根结点的左右子树,交换10的左右子树,交换6的左右子树。测试用例:功能测试(普通的二叉树,二叉树的所有结点都没有左子树或者右子树,只有一个结点的二叉树)特殊输入测试(二叉树的根结点为NULL指针)代码如下:struct BinaryTreeNode{ int m_nValue; BinaryTre原创 2018-01-05 16:27:43 · 132 阅读 · 0 评论 -
二叉树遍历中序非递归/递归、前序非递归/递归、后序遍历非递归/递归、层序遍历
二叉树结点结构struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}原创 2018-01-23 22:35:07 · 125 阅读 · 0 评论 -
从上往下打印二叉树
题目:从上往下打印二叉树的每一个结点,同一层的结点按照从左到右的顺序打印。例如输入 8 / \ 6 10 /\ /\ 5 7 9 11 输出8 6 10 5 7 9 11。分析:使用队列来保存结点代码如下:struct BinaryTreeNode{原创 2018-01-08 21:47:03 · 87 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
题目:输入一个整数数组,判断数组是不是某二叉搜索树的后序遍历的结果。如果是返回true,否则返回false。假设输入的数组的任意两个数字互不相同。分析:例如输入数组{5,7,6,9,11,10,8},则返回true。如果输入数组是{7,4,6,5}。则返回false。在后序遍历得到的序列中,最后一个数字是树的根结点的值。数字中的前面的数字可以分成两部分:第一部分是左子树结点的值,他们都比根原创 2018-01-08 21:58:17 · 116 阅读 · 0 评论 -
二叉树中为某一值的路径
题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。测试用例:功能测试(二叉树中有一条、多条符合条件的路径,二叉树中没有符合条件的路径)特殊输入测试(指向二叉树根结点的指针为NULL指针)代码如下:struct BinaryTreeNode{ int m_nValue; BinaryTre原创 2018-01-08 22:21:44 · 106 阅读 · 0 评论 -
二叉树的深度
题目一:输入一课二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。二叉树的结点定义如下:struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}思路:如果一棵树只有一个结点,它的深度为1。如果根结点只原创 2018-01-19 16:21:57 · 478 阅读 · 0 评论