摘自维基百科: 在计算机科学中,二叉树(英语:Binary tree)是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二元堆积。 二叉树的每个节点至多只有二棵子树(不存在度大于2的节点), ...
分类:
其他好文 时间:
2017-02-11 12:26:56
阅读次数:
150
数据结构:二叉树的链式存储(C语言版) 1.写在前面 二叉树同样有两种存储方式,数组和链式存储,对于数组来说,我们利用二叉树的性质然后利用下标可以方便的找到一个节点的子节点和父节点。 二叉树的性质: 1.二叉树的第i层上至多有2i-1个节点 2.深度为K的二叉树至多有2k-1个节点 3.任何一个二叉 ...
分类:
其他好文 时间:
2016-11-13 22:13:58
阅读次数:
248
1、二叉树 特点:每个结点至多有2颗子树,并且子树有左右之分。 性质: 在二叉树的第i层至多有2i-1个结点; 深度为k的二叉树至多有2k-1个结点; 对任何一颗二叉树而言,若其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1。 二叉树的存储结构: 顺序存储结构(仅适用于完全二叉树) 链式存 ...
分类:
其他好文 时间:
2016-09-25 17:10:56
阅读次数:
173
紫书上的原题 正好学数据结构拿出来做一下 不知道为什么bfs的队列一定要数组模拟…… 还可以练习一下sscanf…… ...
分类:
其他好文 时间:
2016-09-09 16:30:58
阅读次数:
152
数据结构与算法程序=数据结构+算法语言是一种工具语言工具(c,c++)--程序设计方法(面向过程、面向对象)——数据结构(二叉树、队列、栈、红黑树、链表……)——算法(快速排序算法、冒泡排序算法、选择排序算法等等).cpp是c++的源文件,c++语言兼容c语言, 编写c语言代码可以用cpp,c++既 ...
分类:
编程语言 时间:
2016-08-29 22:41:39
阅读次数:
411
在很多平衡树中都用到了树的旋转来维护,比如说红黑树,以及竞赛比较常用的树堆(Treap) 树的旋转既要能改变最大深度,使得平衡树平衡又不能破坏BST(二叉查找树,Binary Search Tree) 的性质,还是比较困难。 先不说BST的,先看看一棵普通的树是怎么旋转的(虽然是一样),然后再思考, ...
分类:
其他好文 时间:
2016-08-22 00:04:14
阅读次数:
320
层序遍历,即宽度优先遍历,在本算法中,我们还需要将每一层进行分开打印, 对于上图所示的二叉树,我们希望打印出的结果是: 1 2 3 4 5 6 7 8 首先,我们看一下二叉树节点是什么样的: 具体实现中,我们采用last表示当前打印的行的最后一个元素的引用,nlast表示下一行最后一个元素的引用。然 ...
分类:
其他好文 时间:
2016-07-05 18:47:11
阅读次数:
186
二叉树的性质
1满二叉树和完全二叉树
2二叉树的主要性质
二叉树的数据结构
二叉树的算法
补充
总结1.二叉树的性质1.1满二叉树和完全二叉树 在一棵二叉树中,如果所有的分支节点都有左孩子和右孩子,并且叶子节点都集中在二叉树的最下一层,则这样的二叉树被称为满二叉树。
如果一棵深度为k有n个节点的二叉树进行编号后,各结点的编号与深度为k的满二叉树中相同位置山的结点的编号军相投,那么这棵二叉树就...
分类:
其他好文 时间:
2016-07-03 15:53:14
阅读次数:
216
在二叉树的一些应用中,常常要求在树中查找具有某种特征的结点,或者对树中全部结点进行某种处理。这就提出了遍历二叉树(traversing binary tree)的问题,即如何按某条路径巡访树中的每个结点,使得每个结点均被访问一次,而且仅被访问一次。"访问"的含义很广,可以是对结点作各种处理,如输出结 ...
分类:
其他好文 时间:
2016-06-30 23:00:55
阅读次数:
136
前序遍历:中,左,右 中序遍历:左,中,右 后序遍历:左,右,中 二叉树查找 从根节点进行比较,目标比根节点小,指针移动到左边 从根节点进行比较,目标比根节点大,指针移动到右边 ...
分类:
编程语言 时间:
2016-06-17 21:10:41
阅读次数:
139