本文辑录了《算法之美——隐匿在数据结构背后的语言》(电子工业出版社2016年出版)一书第8章后半部分至第9章之代码(P273~P320)。主要收录最小生成树的Prim算法、克鲁斯卡尔算法,以及二叉搜索树的实现。AVL树、红黑树、Trie树,正在袭来。全文目录、“45个算法”目录、“22个经典问题目录”,以及附录中的经典笔试、面试问题参考答案请见文内链接。...
分类:
编程语言 时间:
2016-02-22 16:03:58
阅读次数:
247
给定一个升序的单向链表,将它转化为高度平衡的二叉搜索树。...
分类:
其他好文 时间:
2016-02-20 09:19:42
阅读次数:
177
给定一个升序的序列,将它转化为高度平衡的二叉搜索树。...
分类:
其他好文 时间:
2016-02-19 17:18:05
阅读次数:
159
数值的整数次方实现函数double Power(double base, int n)
求base的n次方,不得使用库函数,同时不需要考虑大数问题。Tips问题本身很直观,但是越简单的题越需要细心思考,包括边界问题和效率问题,如果不能考虑到以下3点,就无法给出令人满意的答案:
考虑n为负数的情况;
考虑base为0的情况;
当n较大时,如何保证效率?
分析针对上面3个问题,我们逐一解答:1.在计算...
分类:
编程语言 时间:
2016-02-18 13:58:03
阅读次数:
212
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? 1 class Solution { 2 public: 3 int numTrees(int n) { 4 int
分类:
其他好文 时间:
2016-02-12 15:09:01
阅读次数:
135
作为一个开发者,我发现在我的日常工作中越来越多地查看PHP的源码。在为了弄清楚奇怪的边界问题和为什么某些问题应该发生的却没有发生而去理解背后究竟发生了什么事情的时候非常有用。在文档缺失、不完整或者错误的情况下也很有用。因此,我已经决定通过一系列的文章来分享我学到的知识,给予PHP开发者们足够的知识去...
分类:
Web程序 时间:
2016-02-12 10:31:24
阅读次数:
260
判断一棵二叉搜索树是否有效。有效是指每个节点的值大于左节点,小于右节点(如果有对应节点的话),且它的左节点和右节点也满足这种条件。...
分类:
其他好文 时间:
2016-02-01 09:54:17
阅读次数:
167
给定1到n这n个数,用它们能够构成多少种形状不同的二叉搜索树。...
分类:
其他好文 时间:
2016-01-31 17:20:49
阅读次数:
165
二分查找算法思想非常简单,就是折半查找一个有序序列,在这里,我用二分查找一个顺序排列的整形数组。若用C实现的话我们需要注意以下几个方面:1.如何判断查找完成,定义返回值含义,定义退出循环条件2.如何处理边界问题,例如123这个序列,当我们要查找1或者3时,会不会使程..
分类:
编程语言 时间:
2016-01-28 19:32:18
阅读次数:
214
B 树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点
分类:
编程语言 时间:
2016-01-27 23:03:11
阅读次数:
334