码迷,mamicode.com
首页 >  
搜索关键字:非递归    ( 1549个结果
二叉树基本操作续二:前序、中序、后序遍历(非递归 迭代方式)
这里给出二叉树三种遍历方式的迭代实现代码。二叉树的递归实现使用系统栈入栈出栈,而非递归的迭代实现方法就是手动维护一个栈,来模拟递归的入栈出栈过程。 本文没有给出用户栈的代码,如果需要结合上篇的测试代码一起测试,则需要自己实现自己的栈,以及基本的pop、push等栈操作函数。 前序迭代遍历: ...
分类:其他好文   时间:2014-06-21 08:19:15    阅读次数:211
二叉树先序中序非递归算法
一直想要写的 二叉树 中序 先序 后序遍历算法 递归的太简单了,就不写了。关键是非递归版本。 先序: 我自己的版本: void RootPreTraverse(Node* p) { Stack S; while(S not empty) { p=S.top(); S.pop(); Show(p); if(p->right!=null) S...
分类:其他好文   时间:2014-06-20 10:55:49    阅读次数:279
非递归版求幂函数
#includeint MinSubsequenceSum(const int A[],int n){ int i,sum,MinSum; sum=MinSum=0; for(i=0;i0) sum=0; } return MinSum;}void...
分类:其他好文   时间:2014-06-18 17:45:03    阅读次数:136
图遍历的演示
图遍历的演示 [问题描述]   很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示无向图的遍历操作。 以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 借助于栈类型(自己定义和实现)将深度优先遍历用非递归算法实现。(非递归算法的实现为选做内容,如能实现,适当加分) [测试数据]  ...
分类:其他好文   时间:2014-06-18 06:00:19    阅读次数:251
怎样解决栈溢出
1,什么是栈溢出?由于栈一般默觉得1-2m,一旦出现死循环或者是大量的递归调用,在不断的压栈过程中,造成栈容量超过1m而导致溢出。2,解决方式:方法一:用栈把递归转换成非递归通常,一个函数在调用还有一个函数之前,要作例如以下的事情:a)将实在參数,返回地址等信息传递给被调用函数保存; b)为被调用函...
分类:其他好文   时间:2014-06-17 19:44:51    阅读次数:196
leetcode - Binary Tree Preorder Traversal && Binary Tree Inorder Traversal && Binary Tree Postorder Traversal
简单来说,就是二叉树的前序、中序、后序遍历,包括了递归和非递归的方法前序遍历(注释中的为递归版本): 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 struct TreeNode 9 {1...
分类:其他好文   时间:2014-06-17 12:53:42    阅读次数:416
交换排序:快速排序
快速排序(Quick Sort)也是一种交换排序,它在排序中采取了分治策略。 快速排序的主要思想是: 从待排序列中选取一元素作为轴值(也叫主元)。 将序列中的剩余元素以该轴值为基准,分为左右两部分。左部分元素不大于轴值,右部分元素不小于轴值。轴值最终位于两部分的分割处。 对左右两部分重复进行这样的分割,直至无可分割。...
分类:其他好文   时间:2014-06-15 15:28:14    阅读次数:301
打印出从1到最大的n位十进制数
首先这一题会溢出,要考虑的大数问题。所以不能用简单的是int类型数来表示(32位无符号int 范围是0x00000000···0xFFFFFFFF),下面主要是非递归的实现代码,自己做了注释方便以后回顾。#include "stdafx.h"#include using namespace std;...
分类:其他好文   时间:2014-06-09 15:10:07    阅读次数:227
Binary Tree Preorder Traversal
1. 递归解法 2. 非递归解法(空间复杂度O(n)和O(1))...
分类:其他好文   时间:2014-06-08 10:47:37    阅读次数:139
二叉树的递归遍历和非递归遍历(附详细例子)
二叉树的递归遍历和非递归遍历(附详细例子)         二叉树的遍历主要有递归实现和非递归实现,递归实现比较好理解,非递归实现主要是利用了栈的思想,后进先出,本文实现二叉树的非递归遍历主要是用了LinkedList可以当做栈使用的功能。具体例子如下: package com.sheepmu; import java.util.LinkedList; public class Bin...
分类:其他好文   时间:2014-06-07 13:06:05    阅读次数:269
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!