利用后序遍历,在出栈访问节点时判定节点是否为叶节点,若是叶节点,就生成字符串并添加至结果中。 ...
分类:
其他好文 时间:
2018-05-24 19:30:21
阅读次数:
152
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 二叉搜索树: 它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结 ...
分类:
其他好文 时间:
2018-05-21 17:53:38
阅读次数:
175
20172315 2017 2018 2 《程序设计与数据结构》第十周学习总结 教材学习内容总结 + 集合是一种对象,类似于保存其他对象的存储库。 + 集合的同构和异构:同构意味着这种集合保存类型全部相同的对象,异构可以保存各种类型的对象。 + 对象具有定义良好的接口,从而成为一种实现集合的完整机制 ...
分类:
其他好文 时间:
2018-05-20 22:19:10
阅读次数:
197
一、基本概念 每个结点最多有两棵子树,左子树和右子树,次序不可以颠倒。 性质: 1、非空二叉树的第n层上至多有2^(n-1)个元素。 2、深度为h的二叉树至多有2^h-1个结点。 满二叉树:所有终端都在同一层次,且非终端结点的度数为2。 在满二叉树中若其深度为h,则其所包含的结点数必为2^h-1。 ...
分类:
其他好文 时间:
2018-05-20 15:25:38
阅读次数:
308
重建二叉树的方法有很多种,但是并不是通过任意两种深度优先遍历方式都可以重建二叉树,它也是有限制的。 通过前序+中序、后序+中序、层序+中序这三种方式是可以重建二叉树的,但是通过前序+后序、前序+层序、后序+层序这三种方式是不能重建二叉树的。本文重点讲解通过前序+中序的方式重建二叉树的基本思想以及具体 ...
分类:
其他好文 时间:
2018-05-19 00:44:28
阅读次数:
197
利用后序遍历的特性,后序遍历时,栈中存储的序列为从根节点到栈顶节点的一条路径。 首先判定这条路径是否到达叶节点,通过判定栈顶节点的子节点是否为空来达到目的 然后判定栈中当前和是否为给定值,若为给定值,则直接返回 用的非递归后序遍历 ...
分类:
其他好文 时间:
2018-05-18 14:04:06
阅读次数:
153
这题好难啊! 我好菜啊! 思路:对于最多线段不相交, 我们可以按左端点sort之后,贪心取。 但是这个题要求选取的线段排序之后序号的字典序最小。 那么我们如果按序号贪心地从大往小往里放, 那么对于第k个线段,我们考虑放进去之后是能是还能保证所取的线段个数能 达到最大, 我们考虑函数cal(l, r) ...
主要的学习内容 在本章中,主要学习了二叉树的实现以及各种遍历的方法。着重介绍了前序、中序、后序三种遍历方法的递归实现,同时也描述了前序中序遍历的迭代方法。 教材的主要内容 教材是以哈夫曼编码树为主要脉络,进行介绍的。这部分还未看完。 心得 感觉这章还偏基础,简单一些。更多的是讲述一些遍历这种基础操作 ...
分类:
其他好文 时间:
2018-05-17 21:13:39
阅读次数:
155
1 #include 2 3 typedef struct tagBinaryTree* Node; 4 typedef struct tagBinaryTree BinaryTree; 5 6 struct tagBinaryTree{ 7 int key; 8 Node lchild; 9 No... ...
分类:
其他好文 时间:
2018-05-17 00:50:10
阅读次数:
164
2-11 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序 任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序 遍历顺序 ,令所有遍历中的 根==NULL 遍历顺序都是 左右,即左节点先于右节点,不会改变顺序; 2- ...
分类:
其他好文 时间:
2018-05-16 20:53:02
阅读次数:
188