码迷,mamicode.com
首页 >  
搜索关键字:非递归    ( 1549个结果
算法学习 - 递归与非递归,位运算与乘除法速度比较
递归调用非递归调用 运行时间比较 结论 位运算与乘除法 结论递归调用/非递归调用我们都知道,很多算法,都是用递归实现的。当然它们同时也是可以用非递归来实现。一般我们在对二叉树进行遍历的时候,还有求斐波那契数的时候,递归是非常简单的。代码容易懂,好实现。但是递归的时候,有一个问题,就是需要压栈。为什么要压栈呢?因为当我在函数内部调用自身的时候,要中断当前的操作继续跳转到下一次的实现,而当前运行的状态要...
分类:编程语言   时间:2015-03-28 21:52:18    阅读次数:229
二叉树的非递归遍历及算法分析
用递归遍历的优点是算法简单明了,缺点也十分明显:对于栈的消耗比较大。尤其是在嵌入式应用中,嵌入式处理器资源往往有限。每次递归调用,都会涉及到通用寄存器、SP指针、PC指针等的压栈。当树的深度比较大时,对于栈的消耗会变得非常严重,很有可能造成栈的溢出。 因此,二叉树的非递归遍历方法就显得非常有实际应用价值。下面是非递归遍历的算法,这里使用了数据结构栈,利用其先进后出的特点,用结点入栈出栈过程手工模拟递归调用过程中的栈操作。...
分类:编程语言   时间:2015-03-21 09:53:45    阅读次数:264
二叉树三种遍历递归及非递归实现(Java)
import java.util.Stack; //二叉树三种遍历递归及非递归实现(Java) public class Traverse { /******************定义二叉树**************************/ private final int MAX_SIZE = 10; //链式存储 public static class BinaryTre...
分类:编程语言   时间:2015-03-19 16:24:16    阅读次数:241
【Weiss】【第03章】练习3.12
【练习3.12】a.编写一个非递归过程以O(N)时间反转单链表。b.使用常数附加空间编写一个过程以O(N)时间反转单链表。
分类:其他好文   时间:2015-03-18 15:28:02    阅读次数:111
二叉树的非递归遍历(先序, 中序, 后序)
先序遍历:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), ...
分类:其他好文   时间:2015-03-18 13:48:17    阅读次数:124
快速排序(C语言)
非递归: #include #include int partition(int s[], int i, int j) { int value = 0; int flag = 1; //判断该从头循环还是尾循环 value = s[i]; while(i<j) { switch(flag) { case 0: if(s[i] < value) i++; ...
分类:编程语言   时间:2015-03-18 12:26:19    阅读次数:130
【Weiss】【第03章】练习3.11
【练习3.11】编写查找一个单链表特定元素的程序。分别用递归和非递归实现,并比较它们的运行时间。链表必须达到多大才能使得使用递归的程序崩溃?
分类:其他好文   时间:2015-03-17 21:44:20    阅读次数:99
(转)二叉树的非递归遍历
转自:二叉树的非递归遍历http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法...
分类:其他好文   时间:2015-03-16 12:50:54    阅读次数:163
2015阿里秋招其中一个算法题(经典)
写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率 这是2015阿里秋招的一个在线笔试题 实现方法很简单,遍历一遍二叉树,找出最大最小,一相减就可以求出最大的差值 之前在做题的时候居然写递归的方法求值,后面测试了一下,果然结果不对 只要是非递归的的方法遍历都可以很容易找出最大值最小值,效...
分类:编程语言   时间:2015-03-15 13:57:02    阅读次数:186
迷宫问题 by:192132-01 mfcheer
迷宫问题 以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 要求: (1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 (2)测试几组数据,数据的规模由小变大,...
分类:编程语言   时间:2015-03-14 13:56:57    阅读次数:201
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!