Tag Archives: 递归

原地反置链表(非递归和递归)

链表定义如下:

非递归反置链表如下:

递归反置如下:

怎么感觉递归倒麻烦了呢……

 

数据结构重读 – 递归与汉诺塔

堆栈与递归是相辅相成的。

比如Fibnacci数列就是递归定义:

Fib(n) = Fib(n-1) + Fib(n-2) (n>=2) Fib(0) = 0 Fib(1) = 1

Fibnacci数列:1, 1, 2, 3, 5, 8, 13, 21, ….

说到这里再写个Fibnacci的通项公公式:

这个还是很无敌的……

然后再一个例子是书上的Ackerman函数:

 

转回经典的汉诺塔问题:假设有三个命名为X,Y[……]

继续阅读

CSet生成组合数集合(幂集的子集)–C++实现

Set实现
[cpp]
/********************************************
CopyRight 2007 北京交通大学 计科0601 李赫元
工程名称: 子集
文件名: Set.h
修改日期: 2007-4-30 20:19:59
描述: 定义并实现了集合的封装,子集的输出,全排列的输出
********************************************/
#include &[……]

继续阅读

《数据结构》读书笔记 第三章 非循环顺序队列2

比起第一个顺序非循环队列,这个是浪费空间,节约时间版本~
Queue.h:定义了队列的基本操作
#include <iostream>
enum {OK=0,WRONG=-1};
enum {QIS=10,QI=2};
typedef int Elem;
typedef int Status;
typedef struct
{
 Elem *base;
 int front;
 int rear;
 int qsize;
}Q[……]

继续阅读

迷宫问题的递归c++实现

迷宫问题问题描述:把一只小白鼠放入一个迷宫,问能否找到一条路让小白鼠出来。迷宫用数组表示。能通过则给出图……
不同于上次用栈实现,这里的“栈”自动地由系统分配,So……
 
#include <iostream>
struct Pos
{
 int x;
 int y;
};
int map[7][7]={{0,0,0,0,0,0,0},{0,1,0,1,1,1,0}[……]

继续阅读