关于二叉树的遍历有很多的方法, 下面介绍两个经典的遍历算法: BFS和DFS。一个是深度优先遍历, 一个是广度有优先遍历。 这两种遍历算法均属于盲目的遍历算法, 一般而言, 启发式的遍历搜索算法比较好一些。 。 关于各种遍历算法的对比, 将会在后面逐一提及。 这里不在赘述。
由于树是一个非线性的数据结构, 显然不能像linked list , 或者Array那样通过从头像最末尾移动去实现遍历每一...
分类:
编程语言 时间:
2014-07-20 23:14:21
阅读次数:
387
写在最前面的这篇文章并没有非常详细的算法证明过程。导论里面有非常详细的证明过程。本文只阐述“广度优先和深度优先搜索的思路以及一些简单应用”。两种图的遍历算法在其他图的算法当中都有应用,并且是基本的图论算法。广度优先搜索广度优先搜索(BFS),可以被形象的描述为“浅尝辄止”,具体一点就是每个顶点只访问...
分类:
其他好文 时间:
2014-07-11 19:59:06
阅读次数:
247
今天杂事较多,学习时间比较分散,所以效率不是很高,看的内容也较少,总体来看,这四天把数据结构的内容看了过半,还剩图、查找和排序三章,争取接下来三天内把数据结构的内容结束掉。下面是今天的学习内容。树(tree)1.前序遍历算法:与二叉树的定义一样采用递归形式。2.中..
分类:
其他好文 时间:
2014-07-10 18:37:05
阅读次数:
238
简述计数排序
看了好多别人写的计数排序,看了好久都没看懂,弄了好久最后发现这么简单居然花了几个小时,所以在这里写上,希望和我一样的初学者不会再绕弯路。
一、简述计数排序的思想:
设被排序的数组为A,排序后存储到B,C为临时数组。所谓计数,首先是通过一个数组C[i]计算大小等于i的元素个数,此过程只需要一次循环遍历就可以;在此基础上,计算小于或者等...
分类:
其他好文 时间:
2014-07-04 08:26:18
阅读次数:
248
0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 1 0 1 F 0
0 1 0 1 0 0 0 0
0 0 0 1 0 0 0 0
0 S 0 1 0 0 1 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 1 0
namespace matrix
{...
分类:
其他好文 时间:
2014-07-01 07:14:32
阅读次数:
221
1. 遍历算法(遍历二叉树6种方法) 排序算法 查找算法...
分类:
编程语言 时间:
2014-06-30 10:32:43
阅读次数:
313
一直想要写的 二叉树 中序 先序 后序遍历算法
递归的太简单了,就不写了。关键是非递归版本。
先序:
我自己的版本:
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
实验9图的基本操作实验目的1.掌握图的各种存储结构,特别要熟练掌握邻接矩阵和邻接表存储结构。2.遍历是图各种应用的算法的基础,要熟练掌握图的深度优先遍历和广度优先遍历算法,复习栈和队列的应用。实验内容程序1/*定义邻接矩阵类型*/typedefintadjmatrix[n+1][n+1];/*建立图...
分类:
其他好文 时间:
2014-06-17 13:59:53
阅读次数:
397
简述树的深度优先及广度优先遍历算法,并说明非递归实现。原题出自百度的笔试:当时我看到这个题目的时候,已经完全记不得非递归算法该怎么实现了,后来查阅了一下,要用到两个辅助的数据结构:深度优先遍历--->栈;广度优先遍历--->队列;这里以二叉树为例来实现。import
java.util.ArrayD...
分类:
其他好文 时间:
2014-05-20 02:33:07
阅读次数:
425
上文已讲述了回溯法以及01背包问题的原理,本文讲述如何顺序执行解决01背包问题以及通过模板模式重构软件。
一、顺序执行流程图
图1无剪枝函数的01背包问题顺序执行算法流程图
图2 有剪枝函数的01背包问题顺序执行算法流程图
无剪枝函数是通用的深度遍历算法,为了减少搜索深度可通过剪枝函数处理完全不可能的分枝。与递归方案的区别主要表现在i>=n后需要“回溯”,即用后进先出的方式将物...
分类:
其他好文 时间:
2014-05-09 22:15:22
阅读次数:
675