数据结构学习笔记之递归的应用
来源:互联网 发布:巡更棒作弊软件 编辑:程序博客网 时间:2024/06/05 18:52
求斐波那契数列的一个小程序,当时看的时候觉得人家会数据结构的就是牛啊!短短几步就搞定了,就给记录下来了,以后好借鉴:
#include <stdio.h>int fibonacci(int n){ if( n > 1 ) { return fibonacci(n-1) + fibonacci(n-2); } else if( n == 1 ) { return 1; } else if( n == 0 ) { return 0; }}int main(){ int i = 0; for(i=1; i<=10; i++) { printf("fibonacci(%d) = %d\n", i, fibonacci(i)); } return 0;}
下面是求一个字符串的长度,也是使用递归的解法:
#include <stdio.h>int strlen(const char* s){ if( s == NULL ) { return -1; } else if( *s == '\0' ) { return 0; } else { return strlen(s+1) + 1; }}int main(){ printf("strlen(\"12345\") = %d\n", strlen("12345")); printf("strlen(NULL) = %d\n", strlen(NULL)); printf("strlen(\"\") = %d\n", strlen("")); return 0;}递归有个经典的问题,就是有三个柱子,现在要把一个柱子上的盘子放到另一个柱子,可以借助其中一个柱子,但是每次移动的时候都要求小盘子在上大盘子在下。求移动顺序
#include <stdio.h>void hanno(int n,char a,char b,char c){if(n>0){if (n==1){printf("%c->%c\n",a,c);}else {hanno(n-1,a,c,b);//借助C把a的值先移到b printf("%c->%c\n",a,c);//然后最下面的一个盘子就可以直接从a移到Channo(n-1,b,a,c);//借助C把a的值先移到b }}}int main(){hanno(3,'a','b','c');return 0;}递归的用法真好,以后要多多使用
0 0
- 数据结构学习笔记之递归的应用
- 数据结构学习笔记(11.递归的应用之常用递归算法)
- 数据结构学习笔记(12.递归的应用之八皇后回溯算法)
- 它处资料:数据结构学习笔记(12.递归的应用之八皇后回溯算法)
- 数据结构学习笔记之递归+汉诺塔
- 12、数据结构笔记之十二栈的应用之栈与递归之阶乘实现
- 14、数据结构笔记之十四栈的应用之栈与递归之阿克曼函数
- 15、数据结构笔记之十五栈的应用之栈与递归之八皇后问题
- 16、数据结构笔记之十六栈的应用之栈与递归之汉诺塔问题
- python数据结构学习笔记-2016-11-12-02-递归的应用
- 数据结构学习之-二叉树的三种递归遍历C++实现及相关应用
- 13、数据结构笔记之十三栈的应用之栈与递归之斐波那契数列
- 数据结构递归的学习
- 数据结构—递归的应用
- 六.学习数据结构之递归
- 数据结构学习笔记 --- 栈的应用举例
- 【学习笔记----数据结构06-栈的应用】
- 数据结构学习笔记 --- 栈的应用举例
- C# --习题笔记01
- servet
- 学习HEVC(1)
- python右键不显示IDLE
- hdu 4578 线段树多重操作
- 数据结构学习笔记之递归的应用
- 王景佳:基于Intel架构的SDN网络
- UITableView相关错误
- 内置函数--inline
- 对对话框的控件绘图
- C++中string类的常用函数
- Android--通知之Notification
- Farpoint 小总结
- 在利用ADO数据库编程时,出现的IDispatch 3127和Unknow error 0x800a0e7d错误的解决方法