码迷,mamicode.com
首页 >  
搜索关键字:非递归    ( 1549个结果
二叉树遍历
递归遍历比较简单,本文主要总结非递归遍历。前序遍历前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。 对于任一结点P: 访问结点P,并将结点P入栈; 判断结点P的左孩子是否为空,若为空,则取栈顶结点并进行出栈操作,并将栈顶结点的右孩子置为当前的结点P,循环至1);若不为空,则将P的左孩子置为当前的结点P; 直到P为NULL并且栈为空,则遍历结束。 void preorder(TreeNode...
分类:其他好文   时间:2015-07-17 18:48:34    阅读次数:110
重现二叉树非递归算法的构建过程
递归完成树的遍历很好理解,倘若是非递归,不要告诉我算法导论上有,我要maker的思考过程 既然递归能够实现,那就模拟递归。递归的本质就是压栈。 首先简单树,观察递归的压栈过程 A、B即使节点的数据也代表节点的地址。 对这棵树使用递归完成前序创建#include using namespace std; struct treenode; typedef struct...
分类:编程语言   时间:2015-07-17 16:24:55    阅读次数:172
二叉树的非递归遍历
先序遍历 void PreOrder_Nonrecursive1(BiTree T) //先序遍历的非递归 { if(!T) return ; stack s; BiTree curr = T; while(curr != NULL || !s.empty()) { while(...
分类:其他好文   时间:2015-07-17 08:25:49    阅读次数:131
斐波那契数列非递归算法(fibonacci)
package c4;public class FibTest { public static void main(String []args ){ long begin = System.currentTimeMillis() ; System.out.println(fib(10)) ; ...
分类:编程语言   时间:2015-07-16 16:20:34    阅读次数:123
在二进制树中的节点之间的最大距离(最长路径树)——递归解决方案
上一篇文章即是对这一主题的变化。并给出了一个非递归溶液。我给出原题的一种递归解法。将会看到,现比較上篇博文。今天给出的递归解法的代码实现是相当简洁的。问题描写叙述:假设我们把二叉树看成一个图。父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序。求一棵二叉树中相距最远...
分类:其他好文   时间:2015-07-15 10:55:51    阅读次数:98
C++ 递归和非递归实现链表逆序
测试环境:vs2010  windows7 逆序分别采用递归调用和链表头插法实现逆序。 具体代码如下: #include #include using namespace std; class LinkList { private: struct Node { struct Node *next; int value; }; Node *phead; void rever...
分类:编程语言   时间:2015-07-14 22:48:36    阅读次数:193
快速幂
acm训练中碰到的 题目 HDU 2035 ,1097求 A^B 其实就是把B不断二分降次 得到 (A^2)^(B/2)若B%2==1 则要特殊处理 即 A*(A^2)^(B/2)下面给出 递归 和非递归代码 1 int power(int a,int b) 2 { 3 int res=...
分类:其他好文   时间:2015-07-14 17:52:44    阅读次数:100
数据结构基础温故-4.树与二叉树(中)
在上一篇中,我们了解了树的基本概念以及二叉树的基本特点和代码实现,还用递归的方式对二叉树的三种遍历算法进行了代码实现。但是,由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统撑不住。因此,我们使用非递归(这里主要是循环,循环方法比递归方法快, 因为循环避免了一...
分类:其他好文   时间:2015-07-14 06:04:48    阅读次数:207
基本数据结构之二叉树
C语言实现二叉树的遍历二叉树结点的定义/* 先序,中序,后序的遍历时间复杂度为O(n),每个结点只访问一次。 层序的时间复杂度最差为O(n^2),当二叉树基本平衡时,时间复杂度为O(n) n为结点个数 */typedef int tree_node_element; /** * @author 韦轩 * @time 2015/07/11 * @brief 二叉树的结点数据结...
分类:其他好文   时间:2015-07-13 22:35:19    阅读次数:205
二叉树(8)----第一个二叉树K层节点和二进制部分K叶节点层,递归和非递归
1、二进制定义typedef struct BTreeNodeElement_t_ { void *data;} BTreeNodeElement_t;typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struc...
分类:其他好文   时间:2015-07-13 13:34:26    阅读次数:139
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!