
【数据结构与算法】
Data structure and algorithm
code&&coder
这个作者很懒,什么都没留下…
展开
-
基于系统栈的深度优先搜索算法(DFS)
一、说明深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。二、代码#ifndef STATCKDFS_H#define STATCKDFS_H#include <iostream>#inc原创 2020-05-09 11:22:14 · 495 阅读 · 1 评论 -
基于队列的宽度优先搜索算法(BFS)
一、说明BFS,其英文全称是Breadth First Search。 BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般的实验里,其邻居节点尚未被检验过的节点会被放置在一个被称为 open 的容器中(例如队列或是链表),而被检验过的节点则被放置在被称为 closed 的容器中。(open-closed表)二、代码#ifndef CYCLEQUEUE_H#define CYCLEQUEUE_H#include <iostream&g原创 2020-05-09 10:28:47 · 458 阅读 · 0 评论 -
循环队列
一、说明循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,当队列为空时,有front=rear,而当所有队列空间全占满时,也有front=rear。为了区别这两种情况,规定循环队列最多只能有MaxSize-1个队列元素,当循环队列中只剩下一个空存储单元时,队列就已经满了。因此,队列判空的条件是front=rear,而队列判满的条件是front=(rear+1)%MaxSize。二、代码#ifndef CYCLEQUEUE_H#define C原创 2020-05-08 22:11:38 · 588 阅读 · 0 评论