摘要: 例3.4 二叉树遍历 (1078) 题目描述:二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。给定一棵二叉 阅读全文
posted @ 2018-02-05 23:54 Johnny、 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 基本概念 哈夫曼树的求法 例3.3 哈夫曼树(1172) 为了方便快捷高效率的求得集合K中权值最小的两个元素,我们需要使用堆数据结构。它可以以O(logn)的复杂度取得n个元素中的最小元素。为了绕过对堆的实现,我们使用标准模板库中的相应的标准模板--优先队列。 阅读全文
posted @ 2018-02-05 21:14 Johnny、 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 例3.1 括号匹配问题 (1153) 题目描述: 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左 阅读全文
posted @ 2018-02-05 13:01 Johnny、 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 例2.10 查找学生信息 (1069) 这道题如果采用线性遍历数组来查找是否存在我们需要的元素,那么该算法的时间复杂度达到了O(n*m),而这已达到了千万数量级,是我们不愿意看到的。 利用二分查找,原来O(n*m)的时间复杂度被优化到O(nlogn(排序)+mlogn),符合我们的要求。 阅读全文
posted @ 2018-02-05 02:28 Johnny、 阅读(108) 评论(0) 推荐(0) 编辑