编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
2016-03-25 09:12
1751 查看
数据结构与算法分析——c语言描述 练习3.11 答案
我测试栈反而是没爆,反而插入那么多元素时爆了。不知道是不是编译器做优化了。
我测试栈反而是没爆,反而插入那么多元素时爆了。不知道是不是编译器做优化了。
#include"list.h" #include<stdio.h> //包含头结点的链表,所以检查的是下一个节点,本节点由上一层检查,最开始的头结点没检查 Position findRecursion(List l, ElementType e) { Position p = Advance(l); if (!p || Retrieve(p) == e) return p; else return findRecursion(p, e); } Position findNotRecursion(List l, ElementType e) { Position p = Advance(l); while (p && Retrieve(p) != e) p = Advance(p); return p; } int main() { List l = CreatList(); Position p = l; for (int i = 0; i < 1208; i++) { Insert(i, p); p = Advance(p); } p = findRecursion(l,1207); printf("%d\n", Retrieve(p)); p = findNotRecursion(l, 9999); printf("%d\n", Retrieve(p)); }
相关文章推荐
- nginx命令:启动,停止及命令参数详解
- src与href的区别
- SQL编程规范
- WCF学习笔记(1)——Hello WCF
- android 点击图片切换图片
- ant+eclipse3.4(kepler)+tomcat6
- JavaScript 2048 游戏实例代码(简单易懂)
- android设备添加F1-F12按键功能
- Windows系统安装JDK小结
- shell写自动安装脚本自动读取license和自动输入回车
- Python信号处理模块signal
- 函数式编程与Scala
- python中字典(dict)常见用法
- python2.7:模块安装4种方法
- 深入理解Linux修改hostname(原文作者:潇湘隐者)
- 第一次写,还没想好写啥
- adb 问题,不能识别手机
- Xcode-插件管理工具Alcatraz
- LeetCode 44 Wildcard Matching
- HDU 1045 Fire Net (搜索+回溯)