1、求二叉树的深度 递归 int BitreeDepth(TreeNode *root){ if(root == NULL) return 0; else if(root->left == NULL && root->right == NULL) return 1; int DepthTl = Bi ...
分类:
其他好文 时间:
2016-09-28 02:03:12
阅读次数:
146
题目: Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题目只有一句话:把一个按升序排列的数组,装换成一个平衡二叉树。 代码: 很久没研究数据结构了,先 ...
分类:
其他好文 时间:
2016-09-16 14:09:43
阅读次数:
140
编译处理时,涉及变量及属性的管理 :插入(新变量的定义),查找(变量的引用)。 顺序查找 O(N) 二分查找 O(logN) 二叉树查找O(H) 平衡二叉树 O(logN) 如何快速查找? 查找的本质:已知对象找位置 有序的安排对象-》 全序:顺序查找 半序:二叉树 直接算出位置-》 散列查找 散列 ...
分类:
其他好文 时间:
2016-09-14 18:54:24
阅读次数:
105
树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: BST树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中; 如果BST树的所有非叶子结点 ...
分类:
其他好文 时间:
2016-09-04 14:33:07
阅读次数:
154
陆陆续续做了有一个月,期间因为各种技术问题被多次暂停,最关键的一次主要是因为存储容器使用的普通二叉树,在节点权重相同的情况下导致树高增高,在进行遍历的时候效率大大降低,甚至在使用递归的时候导致栈内存溢出。后来取消递归遍历算法,把普通的二叉排序树升级为平衡二叉树这才解决这些问题。着这个过程中把栈、队列 ...
分类:
编程语言 时间:
2016-09-03 09:45:02
阅读次数:
250
这是个经典问题; 用平衡二叉树维护,只不过节点需要多储存一个siz信息,表明在平衡树上的此节点的子节点数; 平衡树稍稍拓展一下的题目,对我而言,写平衡树的代码难度才是关键; 调试了几个小时,这种题目果然需要多练习; 1 #include<iostream> 2 #include<cstring> 3 ...
分类:
其他好文 时间:
2016-09-02 21:47:07
阅读次数:
134
输入一棵二叉树,判断该二叉树是否是平衡二叉树。 平衡二叉树左右子树深度只差不超过1. ...
分类:
其他好文 时间:
2016-09-01 21:32:48
阅读次数:
226
二叉排序树集中了数组的查找优势以及链表的插入、删除优势,因此在数据结构中占有一定的地位。但在一定的情况下二叉排序树又有可能变为链表,例如插入从1~100的数,这时进行数据查找的效率就要降低。 为了解决二叉排序树这种左右子树深度不均匀的情况引入了一种平衡二叉树(AVLTree):任何一个节点的左右子树 ...
分类:
其他好文 时间:
2016-08-31 00:38:08
阅读次数:
254