1 二叉树的存储结构 1.1 顺序存储结构 二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也是数组的下标要能体现结点之间的逻辑关系,比如双亲与孩子的关系。 一棵完全二叉树的存储: 一般二叉树存储:尽管层序编号不能反映逻辑关系,但是可以将其按完全二叉树编号,只不过把不存在的 ...
分类:
其他好文 时间:
2016-12-07 01:11:09
阅读次数:
199
题意:判断一个节点为n的二叉树是否为完全二叉树。Yes输出完全二叉树的最后一个节点,No输出根节点。 建树,然后分别将该树与节点树为n的二叉树相比较,统计对应的节点个数,如果为n,则为完全二叉树,否则即不是。 #include <iostream> #include <cstdio> #includ ...
分类:
其他好文 时间:
2016-12-04 20:10:43
阅读次数:
191
导论:首先,沿着二分查找的思路,我们构造一种二叉树来查找,这种二叉树的左子树结点都小于根节点,右子树节点都大于根节点,这样一来,所有结点算是都排好序了,接下来就可以查找 基于二叉排序树的查找 一.二叉排序树的定义 所谓二叉排序树是一个什么样的东西,我们得弄清楚,以下是二叉排序树的定义: 1.若它的左 ...
分类:
编程语言 时间:
2016-12-04 16:23:43
阅读次数:
157
二叉查找树(BST)是二叉树的一个重要的应用,它在二叉树的基础上加上了这样的一个性质:对于树中的每一个节点来说,如果有左儿子的话,它的左儿子的值一定小于它本身的值,如果有右儿子的话,它的右儿子的值一定大于它本身的值。 二叉查找树的操作一般有插入、删除和查找,这几个操作的平均时间复杂度都为O(logn ...
分类:
其他好文 时间:
2016-12-03 20:57:57
阅读次数:
239
Atitit 常见的树形结构 红黑树 二叉树 B树 B+树 Trie树 attilax理解与总结 1.1. 树形结构-- 一对多的关系1 1.2. 树的相关术语: 1 1.3. 常见的树形结构 红黑树 二叉树 B树 B+树 Trie树2 1.4. 满二叉树和完全二叉树。。完全二叉树说明深度达到完全了 ...
分类:
其他好文 时间:
2016-12-02 02:32:37
阅读次数:
209
判断题: 1-1 N2logN和NlogN2具有相同的增长速度。 (2分) 1-2 对一棵平衡二叉树,所有非叶结点的平衡因子都是0,当且仅当该树是完全二叉树。(2分) 1-3 无向连通图所有顶点的度之和为偶数。 (2分) 1-4 对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元 ...
分类:
其他好文 时间:
2016-11-27 06:44:37
阅读次数:
1885
Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from Wikipedia:In a complete binary tree every level, ex ...
分类:
其他好文 时间:
2016-11-12 11:16:09
阅读次数:
155
与归并排序一样,但不同于插入排序,堆排序的时间复杂度为O(nlgn)。与插入排序一样,但不同于归并排序,堆排序具有空间原始性,即排序过程中只需要常数个额外的元素空间来存储临时数据。 1、堆是一个数组,它可以看成一个近似的完全二叉树,树上的每个节点对应着数组中的每个元素。对于一个给定下标为 i 的元素 ...
分类:
编程语言 时间:
2016-11-09 20:08:08
阅读次数:
316
基本思想 堆排序是一种树形选择排序,是对直接选择排序的改进。 首先,我们来看看什么是堆(heap): (1)堆中某个节点的值总是不大于或不小于其父节点的值; (2)堆总是一棵完全二叉树(Complete Binary Tree)。 完全二叉树是由满二叉树(Full Binary Tree)而引出来的 ...
分类:
编程语言 时间:
2016-11-09 12:45:38
阅读次数:
344
完全二叉树之所以用数组的方式存在,在于他的一个特性 若子节点为i,则父节点为(i-1)/2,注意c++特性,该结果肯定是个整数。 若父节点为j,则子节点必为2*j+1;则在数组里面可以非常方便的通过下标去获取。 建堆的核心思想: 堆在index的值为heap[index],然后其两个孩子的值边可求得 ...
分类:
编程语言 时间:
2016-11-04 02:03:53
阅读次数:
249