陆陆续续做了有一个月,期间因为各种技术问题被多次暂停,最关键的一次主要是因为存储容器使用的普通二叉树,在节点权重相同的情况下导致树高增高,在进行遍历的时候效率大大降低,甚至在使用递归的时候导致栈内存溢出。后来取消递归遍历算法,把普通的二叉排序树升级为平衡二叉树这才解决这些问题。着这个过程中把栈、队列 ...
分类:
编程语言 时间:
2016-09-03 09:45:02
阅读次数:
250
算法分析:两种方法,一种是中序遍历,然后得到一个序列,看序列是否是有序的。第二种,是用递归。 中序遍历: 递归: ...
分类:
编程语言 时间:
2016-09-02 23:26:43
阅读次数:
195
Unique Binary Search Trees:求生成二叉排序树的个数。 Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example,Given n ...
分类:
编程语言 时间:
2016-08-31 20:39:34
阅读次数:
166
二叉排序树集中了数组的查找优势以及链表的插入、删除优势,因此在数据结构中占有一定的地位。但在一定的情况下二叉排序树又有可能变为链表,例如插入从1~100的数,这时进行数据查找的效率就要降低。 为了解决二叉排序树这种左右子树深度不均匀的情况引入了一种平衡二叉树(AVLTree):任何一个节点的左右子树 ...
分类:
其他好文 时间:
2016-08-31 00:38:08
阅读次数:
254
Java数据结构之二叉搜索树
1、二叉搜索树组成
二叉搜索树又称为二叉排序树,它或者是一颗空树,或者是一颗具有如下特性的非空二叉树,需要满足一下三个条件:
(1)若它的左子树非空,则左子树上所有...
分类:
编程语言 时间:
2016-08-30 22:48:32
阅读次数:
228
一. BST BST即二叉搜索树Binary Search Tree(又叫二叉排序树Binary Sort Tree)。它有以下特点: BST的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果 ...
分类:
其他好文 时间:
2016-08-26 12:11:38
阅读次数:
255
一、二叉搜索树(BSTree)的概念 二叉搜索树又被称为二叉排序树,那么它本身也是一棵二叉树,那么满足以下性质的二叉树就是二叉搜索树: 1、若左子树不为空,则左子树上左右节点的值都小于根节点的值 2、若它的右子树不为空,则它的右子树上所有的节点的值都大于根节点的值 3、它的左右子树也要分别是二叉搜索 ...
分类:
其他好文 时间:
2016-08-18 10:01:18
阅读次数:
266
类别:二叉搜索树、二叉查找树或者二叉排序树 空间效率:O(n)时间效率:O(log n)内完成插入、查找、删除操作 创造者:Daniel Sleator和Robert Tarjan 优点:每次查询会调整树的结构,使被查询频率高的条目更靠近树根。 性质:每个节点都不比它左子树的任意元素小,而且不比它的 ...
分类:
其他好文 时间:
2016-08-15 07:52:41
阅读次数:
317
二叉排序树其实就是二分法,平均时间复杂度为O(nlogn),以下是本人硬着头皮造的轮子。 以上程序随机生成100个0-99的数,程序不能插入相同的数,修改insert_bst_data这个函数就可以。 查找和增加数据都是比较简单,实现起来就需要依靠c的指针功底。(用全局变量毫无压力) 删除数据需要找 ...
分类:
编程语言 时间:
2016-08-10 12:50:37
阅读次数:
225
ACM算法列表 ACM所有算法 栈,队列,链表 哈希表,哈希数组 堆,优先队列双端队列可并堆左偏堆 二叉查找树Treap伸展树 并查集集合计数问题二分图的识别 平衡二叉树 二叉排序树 线段树一维线段树二维线段树 树状数组一维树状数组N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 桶,跳跃 ...
分类:
其他好文 时间:
2016-08-07 19:53:01
阅读次数:
282