JumpNode的定义结构为如下所示:struct JumpNode {
int data; //存储数据
int order; // 记录访问次序,初始化均为0
JumpNode *jump, *next; // next为线性下一节点,jump为跳跃到下一节点
JumpNode(int d): data(d), order(-1), jump(NULL), nex...
分类:
其他好文 时间:
2015-03-05 00:25:09
阅读次数:
156
递归与分治策略(一)
简而言之,递归就是自己调用自己。
递归算法:直接或者间接地调用自身的算法。
递归函数:用函数自身给出定义的函数。
注意:每个递归函数都必须有非递归定义的初始值,以确保递归函数完成计算。
下面通过两个例子来介绍递归的特点
例1 阶乘函数
阶乘函数递归地定义为:
n!=1 (n=0)
或者
n!=n(n-1)! (n>0)
下面用一段简单的...
分类:
编程语言 时间:
2015-03-02 14:58:09
阅读次数:
171
项目需要.递归无限级分类效率实在太低.理了半天思路写的.分类越多效率越高./** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param string $columnPri 唯一键名,如果是表则是表的主键 * @param string $column...
分类:
Web程序 时间:
2015-03-02 13:05:26
阅读次数:
159
class Node{public: int data; Node* left; Node* right;};void pre-order(Node* root){ stack stk; if (root) stk.push(root); while...
分类:
其他好文 时间:
2015-02-24 16:16:46
阅读次数:
122
1,什么是栈溢出?由于栈一般默觉得1-2m,一旦出现死循环或者是大量的递归调用,在不断的压栈过程中,造成栈容量超过1m而导致溢出。2,解决方式:方法一:用栈把递归转换成非递归通常,一个函数在调用还有一个函数之前,要作例如以下的事情:a)将实在參数,返回地址等信息传递给被调用函数保存; b)为被调用函...
分类:
其他好文 时间:
2015-02-22 18:27:42
阅读次数:
179
深搜算法对于程序员来讲是必会的基础,不仅要会,更要熟练。ACM竞赛中,深搜也牢牢占据着很重要的一部分。本文用显式栈(非递归)实现了图的深度优先遍历,希望大家可以相互学习。 栈实现的基本思路是将一个节点所有未被访问的“邻居”(即“一层邻居节点”)踹入栈中“待用”,然后围绕顶部节点猛攻,每个节点被...
分类:
编程语言 时间:
2015-02-20 15:15:42
阅读次数:
247
题目地址:POJ 1780
还是求序列的欧拉回路。只不过这题有两坑。
第一坑是用数字来当点的话,会MLE,因为每个数字可以连10条边,100w条边会MLE,即使用vector也会TLE。这题可以用边来记录,对于n为1时直接输出,然后后面的,比如12,23这两个点就用边权值为123来表示这两个点,这样就把点和边的范围都缩小了10倍。
第二坑是用递归的dfs会爆栈...
分类:
其他好文 时间:
2015-02-16 19:38:42
阅读次数:
215
实现功能:同前程序还是一如既往的优美,虽然比起邻接矩阵的稍稍长了那么些,不过没关系这是必然,但更重要的一个必然是——速度将是一个质的飞跃^_^(这里面的point指针稍作了些创新——anti指针,这个指向当前弧的反向弧,便于路径增广时的操作,相比非递归里面非要用一个op函数来挨个找已经强多了!!!)...
分类:
编程语言 时间:
2015-02-15 00:56:51
阅读次数:
353
Given a binary tree, return the inorder traversal of its nodes’ values.
For example:
Given binary tree {1,#,2,3},
1
\
2
/
3...
分类:
其他好文 时间:
2015-02-13 18:40:15
阅读次数:
189
#include <iostream>
#include <string>
using namespace std;
typedef struct BiTNode
{
int data;
int flag;
BiTNode *lchild,*rchild;
} BTNode,BTree;
//二叉排序树的查找非递归算法
//在二叉...
分类:
其他好文 时间:
2015-02-13 16:47:02
阅读次数:
129