本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/43740415
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algori...
分类:
其他好文 时间:
2015-02-12 09:24:59
阅读次数:
183
算法之递归(2)- 链表遍历在递归(1)中,简单的介绍了递归的思想,并且通过一个例子简单阐述了递归是如何工作的,并且递归的实现是以线性结构来表示的。之所以用线性的,是因为其易于理解;如果使用树结构,将加大对问题的难度,不利于初学者理解递归的思想。为什么用递归关 于为什么用递归,我个人的理解是递归不要...
分类:
编程语言 时间:
2015-02-05 13:33:02
阅读次数:
151
【输出二叉树中的叶子结点】无论前序、中序、后序遍历,叶子结点的输出顺序都是一样的吗?都是一样的,输出顺序为:从树的左边到右边叶子!!在二叉树的遍历算法中增加检测结点的“左右子树是否都为空”。 1 void PreOrderPrintLeaves(BinTree Bt) 2 { 3 if(Bt...
分类:
其他好文 时间:
2015-02-04 16:30:34
阅读次数:
198
包含了所有的非递归和递归的算法:
#include
#include
#include
using namespace std;
//二叉树结点的描述
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild; //左右孩子
}BiTNode,*BiTree;
...
分类:
编程语言 时间:
2015-02-03 21:23:01
阅读次数:
261
【先序遍历】【中序遍历】中序遍历非递归遍历算法:遇到一个结点,就把它压栈,并去遍历它的左子树;当左子树遍历结束后,从栈顶弹出这个结点并访问它;然后按其右指针再去中序遍历该结点的右子树;【后续遍历】【层序遍历】
分类:
其他好文 时间:
2015-02-03 12:30:14
阅读次数:
173
<?php
/**
迭代器模式 :迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:
提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。
迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;
或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。
(1) 需...
分类:
Web程序 时间:
2015-01-30 10:43:39
阅读次数:
175
类比二叉树先序遍历与图深度优先搜索
在引入图的深度优先搜索之前,为了更加容易理解.先考究一种特殊的图---二叉树的深度优先搜索算法---即二叉树的递归遍历方法.
二叉树的前序遍历算法:
void TreeWalk(node* root)
{
if(root)
{
visit(root);
...
分类:
其他好文 时间:
2015-01-27 20:23:35
阅读次数:
219
二叉树的非递归遍历:
中序遍历非递归遍历算法
非递归算法实现的基本思路:使用堆栈:...
分类:
其他好文 时间:
2015-01-18 13:13:54
阅读次数:
189
仅有遍历算法是不够的,在许多应用中,我们还需要对遍历本身进行抽象。假如有一个求和的函数sum,我们希望它能应用于链表,数组,二叉树等等不同的数据结构。这时,我们可以抽象出迭代器(Iterator)的概念,通过迭代器把算法和数据结构解耦了,使得通用算法能应用于不同类型的数据结构。 我们可以把sum函数...
分类:
其他好文 时间:
2015-01-15 15:43:14
阅读次数:
227