题目就是给出一棵二叉搜索树,已知根节点为0,并且给出一个序列要插入到这课二叉树中,求这棵二叉树层次遍历后的序列。 用结构体建立节点,val表示该节点存储的值,left指向左孩子,right指向右孩子。中序遍历的顺序正好是序列从小到大的顺序,因此中序遍历的时候顺便赋值就可以了,最后层次遍历输出。 思路 ...
分类:
其他好文 时间:
2016-11-25 19:36:29
阅读次数:
169
首先,要感谢网上的参考资料。 二叉树是使用的比较广泛的一种数据结构,这里我写了二叉树的相关操作,包括初始化、新建、以及遍历。这里主要是为了学习二叉树的遍历算法,我总结后,写了八种二叉树的遍历算法,分别是: 1.递归先序遍历 2.递归中序遍历 3.递归后序遍历 4.非递归先序遍历(单栈辅助) 5.非递 ...
分类:
编程语言 时间:
2016-11-07 09:38:28
阅读次数:
285
二叉树的基本操作: 1.创建二叉树 2.销毁二叉树 3.遍历二叉树:1)前序遍历 2)中序遍历 3)后序遍历 4)层次遍历 4.搜索二叉树 5.删除子叶 6.插入子叶 7.获取左/右子叶的值 8.获取树深度 9.获取叶子结点数 1.创建二叉树 这里创建的是链式存储结构的二叉树,包含数据域,左右两结点 ...
分类:
其他好文 时间:
2016-10-28 20:13:42
阅读次数:
252
Tree Traversals 原题链接 常见的二叉树遍历的题目,根据后序遍历和中序遍历求层次遍历。 通过后序遍历和中序遍历建立起一棵二叉树,然后层序遍历一下,主要难点在于树的建立,通过中序遍历和后序遍历的特点递归求解,详细内容见代码 ...
分类:
其他好文 时间:
2016-10-24 23:41:01
阅读次数:
186
设计一个算法层序遍历二叉树(同一层从左到右访问)。思想:用一个队列保存被访问的当前节点的左右孩子以实现层序遍历。void HierarchyBiTree(BiTree Root){LinkQueue *Q; // 保存当前节点的左右孩子的队列InitQueue(Q); // 初始化队列if (Roo ...
分类:
其他好文 时间:
2016-10-24 20:26:25
阅读次数:
155
之前我看了这道题,实在是看不懂网上的解题答案,他们的具体思路基本上就是通过后续遍历和中序遍历,直接推出层次遍历。 我苦思冥想了半天,是在没看懂这种思路,于是想了一个笨点的但是也比较好理解的思路,通过后续和中序,先推出整个二叉树,再考虑 对二叉树层次遍历。 本题还有一点要注意的时在输出结果的末尾,如果 ...
分类:
其他好文 时间:
2016-10-10 23:55:46
阅读次数:
394
二叉树遍历: 从根结点开始,按照某种次序依次访问二叉树中的所有结点。 前序遍历: 中序遍历: 后序遍历: 层次遍历: 代码实现: ...
分类:
其他好文 时间:
2016-10-03 18:59:40
阅读次数:
106
if(obj is ClassA) //遍历类层次,看OBJ是不是ClassA类型{ ClassA a=(ClassA) obj; //遍历类层次,看obj能否转换为ClassA ... }//作了两次类层次遍历 ClassA a = obj as ClassAIf(a){ }//仅作了 一次类层次 ...
思路:类似于层次遍历,用队列实现。每层结点进队列,末尾加入-1;再出队列,同时添加结点的子节点入队列,遇到-1则深度加1; java代码: 运行结果: 没有在赛码网ac过,大家可以试试。 ...
分类:
移动开发 时间:
2016-09-23 23:24:27
阅读次数:
240