- 博客(5)
- 收藏
- 关注
转载 二叉树的建立与显示
#include#includeusing namespace std;struct BinaryTreeNode{ int value; BinaryTreeNode *left; BinaryTreeNode *right;};BinaryTreeNode *CreatBT();void preorder(BinaryTreeNode *T);void inorde
2013-12-10 15:49:17
917
原创 在二元树中找出和为某一值的所有路径
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。输出节点值之和与输入整数相等的所有路径。解题思路:当访问到某一结点时,把该结点添加到路径上,并累加当前结点的值。如果当前结点为叶结点并且当前路径的和刚好等于输入的整数,则当前的路径符合要求,我们把它打印出来。如果当前结点不是叶结点,则继续访问它的子结点。当前结点访问结束后,
2013-12-10 15:47:11
425
转载 设计包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。解题思路:在栈里添加一个成员变量存放最小元素(或最小元素的位置)。每次push一个新元素进栈的时候,如果该元素比当前的最小元素还要小,则更新最小元素。乍看这样思路挺好。但仔细一想,该思路存在一个重要的问题:如果当前最小元素被pop出去,如何才能得
2013-12-10 15:42:31
393
转载 二元查找树转变成排序的双向链表
深感编程能力亟待提升,近期开始刷题库。题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求:不能创建任何新的结点,只调整指针的指向。本题收获:有关树的问题,可以考虑使用递归~// 1:构造二元查找树; // 2:中序遍历二元查找树,结点按从小到大顺序访问,假设之前访问过的结点已经调整为一个双向链表,那么 // 只需要将当前结点
2013-12-10 15:38:29
324
转载 求子数组的最大和
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。解题思路:如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n^2)个子数组;而且求一个长度为n的数组的和的时间复杂度为O(n),因此这种思路的时间是O(n^3)。很容
2013-12-10 15:32:57
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人