编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
来源:互联网 发布:史弥远 知乎 编辑:程序博客网 时间:2024/05/20 15:40
数据结构与算法分析——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;elsereturn 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));}
0 0
- 编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
- 分别使用递归方法和非递归方法求斐波那契数列,并比较两者的运行速度(测量代码运行时间)
- 分别使用递归和非递归实现二分查找算法
- 编写一个函数实现n^k,分别使用递归和非递归实现
- 单链表倒置,给你一个头指针,用递归与非递归的方法分别实现;
- 一个递归和非递归实现二分查找的代码
- 查找二叉树的实现(查找,删除,插入)分别用递归和非递归
- 【Java】实现一个递归和非递归的reverse,它们能把一个表翻转过来。
- 编写查找一个单链表特定元素的程序
- 递归和非递归分别实现求n的阶乘
- 递归和非递归分别实现求n的阶乘
- C语言程序-递归和非递归分别实现求n的阶乘
- 二叉排序树中查找元素的递归和非递归写法
- 分别用递归和非递归实现二分查找算法
- 试编写一个函数,返回一颗给定二叉树在中序遍历下的最后一个节点(分别用递归和非递归实现)
- 数据结构_分别使用for循环和递归打印1-N的所有整数,比较运行时间
- Java(二分查找算法实现,分别使用递归和非递归方式)
- C语言程序-递归和非递归分别实现strlen
- 20160324 codevs 2956 排队问题,poj Ancient Cipher,uva 253 - Cube painting
- android设备添加F1-F12按键功能
- android 点击图片切换图片
- 关于页面传值
- SQL编程规范
- 编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
- src与href的区别
- IOS 划线
- poj The Perfect Stall 1274 (二分图最大匹配)
- java小程序之(GUI)确认对话框控制循环
- Hadoop启动时出现Warning: $HADOOP_HOME is deprecated.警告
- JS根据userAgent值来判断浏览器的类型及版本
- PAT 乙级 1030.完美数列
- 决策树分类和预测算法的原理及实现