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
前面我们说了二叉树前序中序后序遍历的递归非递归算法的实现,下面我们再来说说二叉搜索树~
二叉排序树分为静态查找(find)和动态查找(insert、delete)
二叉搜索树:一棵二叉树,可以为空;如果不为空,满足下列性质:
1.非空左子树的所有键值小于其根结点的键值。
2.非空右子树的所有键值大于其根结点的键值
3.左右子树都是二叉搜索树!!
...
分类:
编程语言 时间:
2015-02-11 09:24:00
阅读次数:
355
包含了所有的非递归和递归的算法:
#include
#include
#include
using namespace std;
//二叉树结点的描述
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild; //左右孩子
}BiTNode,*BiTree;
...
分类:
编程语言 时间:
2015-02-03 21:23:01
阅读次数:
261
二叉树的创建及遍历是很多二叉树问题的基础,递归遍历逻辑清晰,代码简约漂亮,然则效率低下(所有递归方案的通病,非不得已不用递归);非递归遍历高效,却不是能信手写出来的,特别是后续非递归遍历,相信很多资深码工也有这样的经历:5年前学习了二叉树的非递归遍历,一个月前复习了并达到能熟练写出的程度,在不参.....
分类:
其他好文 时间:
2015-01-15 21:45:57
阅读次数:
185
想兑换100元钱,有1,2,5,10四种钱,问总共有多少兑换方法。
下面提供两种实现方式,其中代码注释的很清楚。
关于动态规划的基本原理,参考:
http://www.cnblogs.com/sdjl/articles/1274312.html...
分类:
其他好文 时间:
2014-12-08 17:59:14
阅读次数:
275
1.递归
function fib(n){
if(n==1||n==2){
return 1;
}
return fbnq(n-1)+fbnq(n-2);
}
fbnq(10);
//55
2.非递归
var res=[1,1];
function fb(n){
for(var i=2;i<n;i++){
res[i] = res[i-1] + r...
分类:
Web程序 时间:
2014-12-08 09:18:22
阅读次数:
162
1、单链表反转(递归非递归) ListNode *ReverseList(ListNode *pHead)
{ if(pHead==NULL||pHead->Next==NULL) return pHead; ListNode *previousNode=NULL; ListNode *nextNo...
分类:
其他好文 时间:
2014-10-26 18:17:14
阅读次数:
214
转至:http://blog.csdn.net/alex44667416/article/details/4723991package tree;import java.util.Stack;// 二叉树节点 class BTNode { private char key; privat...
分类:
编程语言 时间:
2014-10-12 19:32:48
阅读次数:
255
理论:1.先(根)序遍历的递归定义:若二叉树非空,则依次执行如下操作:⑴ 访问根结点;⑵ 遍历左子树;⑶ 遍历右子树。2.中(根)序遍历的递归算法定义:若二叉树非空,则依次执行如下操作:⑴遍历左子树;⑵访问根结点;⑶遍历右子树。3.后(根)序遍历得递归算法定义:若二叉树非空,则依次执行如下操作:⑴遍...
分类:
其他好文 时间:
2014-10-04 19:45:37
阅读次数:
146