2013年7月10日

在二叉树中找出和为某值的所有路径

摘要: 1 #include 2 #include 3 /*在二叉树中找出和为某值的所有路径*/ 4 /*从树的根节点开始往下访问一直到叶节点所经过的所有节点形成一条路径*/ 5 /*分析,二叉树肯定要递归,遍历每条路径,得到每条路径和。 6 *路径的存储用栈结构比较合适,链表,数组都可。 7 */ 8 typedef struct node{ 9 int value; 10 struct node *left; 11 struct node *right; 12 }node; 13 14 static int total; 15 #define ... 阅读全文

posted @ 2013-07-10 08:14 kevin_kang 阅读(347) 评论(0) 推荐(0)

求子数组最大和

摘要: 1 #include 2 #include 3 /*求子数组最大和,时间复杂度o(n),数组有正、负整数*/ 4 /*分析,要求时间复杂度o(n),则只能读一次数组,顺序求解 5 *因为有正数,所有排除负和。 6 *可以使用动态机分析。max(x[i])分两种情况,max(x[i-1])0 7 */ 8 #define len(x) (sizeof(x)/sizeof(x[0])) 9 int bigsum_subarray(int *x, int len)10 {11 if(x == NULL || len total)22 total = tm... 阅读全文

posted @ 2013-07-10 08:13 kevin_kang 阅读(200) 评论(0) 推荐(0)

min函数的栈

摘要: 1 #include 2 #include 3 /*min函数的栈,可去栈最小值,pup,push,min时间复杂度为o(1)*/ 4 /* 5 * 分析,程序一般都是空间换时间,除了非常好的算法。 6 * 所以可以弄2个栈解决问题。 7 * 下面是链表实现的栈,简单点的用静态动态数组。 8 * 写的比较乱,因为从原来栈程序改的,只是表示一种思路, 9 * 没有根据题目编写10 */11 typedef struct stack_node{12 int value;13 struct stack_node *next;14 }stack_node;15 16 ... 阅读全文

posted @ 2013-07-10 08:12 kevin_kang 阅读(171) 评论(0) 推荐(0)

导航