迭代器(Iterator)模式,又叫游标(Cursor)模式。其定义为:提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式是和容器相关的,对容器对象的访问设计到遍历算法。 迭代器模式由以下角色组成: 意图:就是提供一种访问集合对象的方法,而又无需暴露该对象的内部细节。 ...
分类:
其他好文 时间:
2017-07-10 23:42:42
阅读次数:
199
第六章 树 一、基本要求、重点、难点 本章目的是介绍二叉树的定义、性质、存储结构、遍历。树的定义、存储结构、遍历、树和森林与二叉树的转换,哈夫曼树等内容。本章重点是掌握二叉树的遍历算法及有关应用。难点是使用本章所学到的有关知识设计出有效算法,解决与树或二叉树相关的应用问题。 二、考核目标、考核要求 ...
分类:
其他好文 时间:
2017-06-28 23:17:29
阅读次数:
358
//代码进过测试,直接可以拿来用#include #include #include #include #include # define MaxSize 100 using namespace std; //二叉树结点 typedef struct BTNode{ char data; struc... ...
分类:
编程语言 时间:
2017-06-23 20:56:04
阅读次数:
272
/*************************************** * 时间:2017年6月23日 * author:lcy * 内容:二叉树的层次遍历 * 需要借助队列这个数据结构,直接import就可以了 * 1.首先将根节点放入队列中。 2.当队列为非空时,循环执行步骤3到步骤5... ...
分类:
编程语言 时间:
2017-06-23 19:36:37
阅读次数:
229
递归算法大家都不陌生,当须要反复计算同样问题时,一般能够选择递归和循环两种算法。又由于递归实现起来代码比較简洁。所以通常都会使用递归来解决上述问题。比方斐波那契数列。再比方树的前序、中序、兴许遍历算法。 递归算法尽管是有代码简洁这个长处,可是其缺点显著。由于递归函数是在运行过程中调用其自身,所以会占 ...
分类:
编程语言 时间:
2017-06-13 17:08:18
阅读次数:
162
今天搞了一个多小时,头是疼的,应该是没休息好吧,学习了数据结构这一节,感觉收益良多,下面贴上代码和心得: 运行截图: 吟诗一首: 精神经百炼,锋锐坚不挫。 ——刘过 ...
分类:
编程语言 时间:
2017-06-08 22:25:36
阅读次数:
199
算法概述递归算法简洁明了、可读性好,但与非递归算法相比要消耗更多的时间和存储空间。为提高效率,我们可采用一种非递归的二叉树遍历算法。非递归的实现要借助栈来实现,因为堆栈的先进后出的结构和递归很相似。对于中序遍历来说,非递归的算法比递归算法的效率要高的多。其中序遍历算法的实现的过程如下:(1).初始化 ...
分类:
编程语言 时间:
2017-05-27 15:19:15
阅读次数:
151
概述: 近期要学习写网络爬虫。所以把图的深度和广度搜索都再温习一下。 图结构展示: 实现过程: 首先,我们来看看图结构在代码中的实现。有三块逻辑: 1.图中的节点: public class GraphNode { public List<GraphEdge> edgeList = null; pr ...
分类:
编程语言 时间:
2017-05-27 10:47:45
阅读次数:
269
/* 图的遍历方法主要有两种:一种是深度优先遍历。一种是广度优先遍历。图的深度优先遍历类同于树的先根遍历。图的广度遍历类同树的层次遍历 一:连通图的深度优先遍历算法 图的深度优先遍历算法是遍历时深度优先的算法,即在图的全部邻接顶点中,每次都在訪问当前顶点后。首先訪问当前顶点的第一个邻接顶点。 连通图 ...
分类:
其他好文 时间:
2017-05-24 10:10:35
阅读次数:
159
1、连通图的宽度优先搜索(BFS) (1)算法思路 准备:起点v 和一个空队列Q 。 ① 将v 打上已訪问标记。并将 v 放入队列Q 。 ② 取出队列 Q 的 队首元素 u 。搜索全部与 u 相邻的顶点。假设 w 与u 相邻且未訪问, 则将w 打 上已訪问标记。并将 w 放入队列Q 。 ③ 反复②。 ...
分类:
编程语言 时间:
2017-05-23 13:17:32
阅读次数:
247