二叉树——遍历篇 二叉树很多算法题都与其遍历相关,笔者经过大量学习并进行了思考和总结,写下这篇二叉树的遍历篇。 1、二叉树数据结构及访问函数 2.3、非递归遍历——借助栈 借助栈,可以实现非递归遍历。 在这里三种非递归遍历都总结和介绍一种算法思路,其栈中保存的节点可以用于路径搜索类的题目,即保存着从 ...
分类:
编程语言 时间:
2017-12-31 12:51:18
阅读次数:
177
二叉树:数据结构的一种。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。 堆实质上 ...
分类:
编程语言 时间:
2017-12-18 18:42:20
阅读次数:
197
1 #include 2 #include 4 #include 5 typedef char datatype; //字符类型 内容 6 typedef struct node{ //二叉链树数据结构 7 datatype data; 8 struct node *lchild,*rchild; ... ...
分类:
编程语言 时间:
2017-11-27 15:22:54
阅读次数:
266
1、常见二叉树数据结构如下: 2、二叉树的深度 可以使用递归算法分别求出左子树和右子树的深度,两个深度的较大值 +1 即可。代码如下: 3、二叉树广度 求二叉树的广度需要使用队列,层次遍历二叉树。在上一层遍历完成后,下一层的所有节点已经放到队列中,此时队列中的元素个数就是下一层的宽度。以此类推,依次 ...
分类:
编程语言 时间:
2017-11-15 21:58:45
阅读次数:
279
这周过去,就已经过了大半个学期了,老师对1到8章的内容进行了复习,确实感觉到前面的东西没以前那么难了,虽然还是存在一点问题,但是不得不说老师的方法真的是有效的。这章我们学习了集合,和数据结构有很大的联系,List是顺序表,Stack就是栈,tree是树。数据结构中的很多算法除了c还可以在JAVA中实 ...
分类:
编程语言 时间:
2017-11-05 12:15:12
阅读次数:
177
数据结构C Description Input Output Sample Input Sample Output HINT Solution 首先,D操作为删除操作显然不可做,又发现这道题可以离线处理,那么我们考虑倒着来,维护加入操作。 那么这时候,D操作就变为了合并操作,那么这时候我们只需要维护 ...
分类:
其他好文 时间:
2017-10-13 23:37:39
阅读次数:
254
参考:http://blog.csdn.net/dazhong159/article/details/7906916 ...
分类:
编程语言 时间:
2017-10-08 12:12:43
阅读次数:
196
二叉树是一种很特别的树,这种树有个特点,每个结点最多只有两个子结点,也就是说每个父节点最多只有两个儿子,左边的叫做左儿子,右边的叫做右儿子。那么,关于二叉树,严谨的定义如下:二叉树(BinaryTree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树..
分类:
其他好文 时间:
2017-09-29 22:59:38
阅读次数:
160
先摘录书中一段关于树的定义:树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可以分为互不相交的有限集T1、T2、……Tm,其中每一个集合本身又是一棵树,并且称为根的子树(..
分类:
其他好文 时间:
2017-09-26 09:26:52
阅读次数:
150
DAY I 话说什么叫半集训?有的课上就不错了,还关心半不半…… 早上刷了CF666……觉得自己越来越傻了,下午默默滚去字符串(话说我曾经是会自动机的……就是……忘了……) 然后就是在各种论文里懵逼……总之后缀基本是打熟了……颓了一发主席树……数据结构还是比较辣鸡,然后就陷入概率DP+AC自动机的漩 ...
分类:
其他好文 时间:
2017-09-13 23:27:18
阅读次数:
175