树的遍历方式总体上有两种:DFS和BFS;其中DFS包含了前序、中序和后序遍历,而BFS则为层次遍历。DFS的实现方式:(1) 递归;(2) 非递归,使用辅助栈;递归程序public class Recursion { public void preorderRec(TreeNode root) {...
分类:
其他好文 时间:
2015-06-25 08:53:51
阅读次数:
203
非递归: public static int maxDepth(TreeNode root){ if(root==null) return 0; Queue q=new LinkedList(); q.offer(root); int enQu...
分类:
其他好文 时间:
2015-06-24 12:26:34
阅读次数:
98
JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)1.不使用递归的方法调用.public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File...
分类:
编程语言 时间:
2015-06-24 10:37:27
阅读次数:
94
题目描述: Reverse a singly linked list. 这道题太经典了,解法有两种,递归和非递归。 见反转单链表
分类:
其他好文 时间:
2015-06-23 13:23:36
阅读次数:
82
问题的由来:
当你第一次实现用递归实现链表删除功能的时候,是否有一丝丝的考虑过。这个问题呢?为什么对于非递归版本的删除必须要知道当前要删除节点的前驱,而需要对其前驱节点的next域指针进行修改。而递归删除却不需要呢?难道这样不会造成链表的断链吗?
好了。我们开始抽象出我们今天要解决的问题。
问题一:
递归实现链表节点的删除和非递归删除的区别是什么?
问题二:
为...
分类:
其他好文 时间:
2015-06-22 15:04:15
阅读次数:
197
【摘要】本文讨论的均为带头结点的线性链表的基本操作,包括创建、删除、插入、打印等等,欢迎大家批评指正错误。(1)单链表存储结构typedef struct LNode
{
int data;
struct LNode *next;
}LinkList;(2)创建链表/* 功能:构建一个空的带头节点的单链表*/
Status InitList (struct LNode **L)...
分类:
其他好文 时间:
2015-06-18 22:13:31
阅读次数:
120
对于二叉树,有前序、中序、后序三种遍历方法,由于树的定义本身就是递归定义的,故采用递归方法实现三种遍历简洁易懂。若采用非递归访问,则需要使用栈来模拟递归的实现。三种遍历的非递归算法中,前序和后序较容易,而后序相对较难。前序遍历递归非递归树的遍历中序遍历递归非递归后序遍历递归非递归层次遍历计算树高.....
分类:
其他好文 时间:
2015-06-18 19:01:43
阅读次数:
117
【摘要】当执行完被调用函数,返回外部程序前,系统首先要恢复外部程序的变量当前值,然后返回外部程序的返回地址。递归函数被外部程序调用时,系统要做的工作和非递归函数被调用时系统要做的工作在形式上类同,只是实现方法不同而已。那递归代码和运行时的堆栈有什么关系呢?我们先看一下下面这几幅图,关于递归代码和运行时堆栈关系。
我们可以看一下普通函数的调用怎么样的。试想如果函数A调用了函数B,函数B又调用了函数C,那么在堆栈中的数据是怎么保存的呢?
[cpp] view plaincopy
函数A ^...
分类:
编程语言 时间:
2015-06-17 21:48:09
阅读次数:
249
void BuildTree(){ FileNode nodeD; nodeD.fileName = _T("D"); nodeD.fileSize = 15; FileNode nodeE; nodeE.fileName = _T("E"); nodeE.fileSize = 10; FileN....
分类:
其他好文 时间:
2015-06-16 19:11:14
阅读次数:
132
23333......简单的并查集模板。就是被并查集递归式路径压缩RE坑过。。。学习一下非递归式路径压缩。附代码:#include#include#include#define maxn 30100using namespace std;int fa[maxn];int n, m, k;void i...
分类:
其他好文 时间:
2015-06-15 21:51:55
阅读次数:
99