c++ 深度优先算法
#include <iostream>
using namespace std; #define VertexNum 9 /*定义顶点数*/ struct Node /*声明图形顶点结构*/
{
int Vertex; /*邻接顶点数据*/
struct Node *Next; /*下一个邻接顶点*/
}; typedef struct Node *Graph; /*定义图形结构*/
struct Node Head[VertexNum]; /*顶点数组*/
int Visited[VertexNum]; /*查找记录*/ /*深度优先算法*/
void DFS(int Vertex)
{
Graph Pointer; Visited[Vertex]=;//已查找
cout<<Vertex<<"==>";
Pointer=Head[Vertex].Next; while(Pointer!= NULL)
{
if(Visited[Pointer->Vertex]==)
DFS(Pointer->Vertex);
Pointer=Pointer->Next;
}
} /*建立领接顶点至领接列表内*/
void Create_L_Graph(int Vertex1,int Vertex2)
{
Graph Pointer;
Graph New; New=(Graph)malloc(sizeof(struct Node));
if(New!=NULL)
{
New->Vertex=Vertex2;
New->Next=NULL;
Pointer=&(Head[Vertex1]);
while(Pointer->Next!=NULL)
Pointer=Pointer->Next;
Pointer->Next=New;
}
} /*输出领接列表内数据*/
void Print_L_Graph(struct Node *Head)
{
Graph Pointer;
Pointer=Head->Next;
while(Pointer!=NULL)
{
cout<<"["<<Pointer->Vertex<<"]";
Pointer=Pointer->Next;
}
cout<<endl;
} /*主程序*/
void main()
{
int Node[][]={{,},{,},{,},{,},{,},
{,},{,},{,},{,},{,},
{,},{,},{,},{,},{,},
{,},{,},{,},{,},{,} }; for(int i=;i<VertexNum;i++)
{
Head[i].Vertex=i;
Head[i].Next=NULL;
} for(int i=;i<VertexNum;i++)
Visited[i]=; for(int i=;i<;i++)
Create_L_Graph(Node[i][],Node[i][]); cout<<"##Graph##"<<endl;
for(int i=;i<VertexNum;i++)
{
cout<<"Vertex["<<i<<"]:";
Print_L_Graph(&Head[i]);
} cout<<"Depth-First-Search:"<<endl;
cout<<"[BEGIN]==>";
DFS();
cout<<"END"; }
c++ 深度优先算法的更多相关文章
- [ACM训练] 算法初级 之 搜索算法 之 深度优先算法DFS (POJ 2251+2488+3083+3009+1321)
对于深度优先算法,第一个直观的想法是只要是要求输出最短情况的详细步骤的题目基本上都要使用深度优先来解决.比较常见的题目类型比如寻路等,可以结合相关的经典算法进行分析. 常用步骤: 第一道题目:Dung ...
- Java与算法之(5) - 老鼠走迷宫(深度优先算法)
小老鼠走进了格子迷宫,如何能绕过猫并以最短的路线吃到奶酪呢? 注意只能上下左右移动,不能斜着移动. 在解决迷宫问题上,深度优先算法的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径. 首先 ...
- 广度优先算法(BFS)与深度优先算法(DFS)
一.广度优先算法BFS(Breadth First Search) 基本实现思想 (1)顶点v入队列. (2)当队列非空时则继续执行,否则算法结束. (3)出队列取得队头顶点v: (4)查找顶点v的所 ...
- 在图中寻找最短路径-----深度优先算法C++实现
求从图中的任意一点(起点)到另一点(终点)的最短路径,最短距离: 图中有数字的点表示为图中的不同海拔的高地,不能通过:没有数字的点表示海拔为0,为平地可以通过: 这个是典型的求图中两点的最短路径:本例 ...
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...
- Unity中通过深度优先算法和广度优先算法打印游戏物体名
前言:又是一个月没写博客了,每次下班都懒得写,觉得浪费时间.... 深度优先搜索和广度优先搜索的定义,网络上已经说的很清楚了,我也是看了网上的才懂的,所以就不在这里赘述了.今天讲解的实例,主要是通过自 ...
- 图的存储,搜索,遍历,广度优先算法和深度优先算法,最小生成树-Java实现
1)用邻接矩阵方式进行图的存储.如果一个图有n个节点,则可以用n*n的二维数组来存储图中的各个节点关系. 对上面图中各个节点分别编号,ABCDEF分别设置为012345.那么AB AC AD 关系可以 ...
- 深度优先算法DFS
英雄要从H点出发,去解救位于M点的美女. 迷宫的围墙用#表示,带*号的位置表示有杀手埋伏,这些点都是不能走的, 那么英雄要最少走多少步才能解救美女呢? package myalgorithm; imp ...
- DFS深度优先算法学习
刚开始学习算法,参考大佬博客还是有很多不明白的,于是一步步解析,写下笔记记录. 大佬博客地址: https://blog.csdn.net/fuzekun/article/details/852204 ...
随机推荐
- Java程序员学习Go指南(三)
转载:https://www.luozhiyun.com/archives/213 人是否会进步以及进步得有多快,依赖的恰恰就是对自我的否定,这包括否定的深刻与否,以及否定自我的频率如何.这其实就是& ...
- 015、Java中定义变量时不设置内容,使用变量前设置内容
01.代码如下 package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- cmd命令打开本地*.db数据文件的一些坑
昨天刚看了下sqlite数据库,用的是cmd窗口 写的,建了几个表,今天在次打开,发现.问题有点小多啊.. 我也不知道我的数据库名字后面为啥会带 (“ : ”) 下面是我的数据文件: 刚开始看了下, ...
- 京东首页如何实现pc端和移动端加载不同的html的?
进入www.jd.com后代码判断是手机的话就跳转m.jd.com let ua = window.navigator.userAgent.toLocaleLowerCase() let murl = ...
- Netty简单认识
简介 Netty 是由JBOSS提供的一个 Java开源框架, 现在是 Github上的开源项目 Netty 是一个异步的.基于事件驱动的网络应用框架式, 用以快速开发高性能.高可靠性的网路IO程序 ...
- DNS and Bind
DNS : 工作在应用层 DNS 作用 : 完成域名到IP的解析过程 FQDN --> IP 例如 : www.ifeng.com --> 123.103.122.24 D ...
- 应用于Oculus Quest的VR头显应用
项目需要一个VR头显项目来展示算法成果,设备为Oculus Quest一体机,基于android平台(平台要切换为android),体验了下设备效果还行,但还是有点沙窗效应.记录一下开发流程. 先贴个 ...
- poj 2456 Aggressive cows 贪心+二分
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25944 Accepted: 11982 ...
- restfulframework详解
restfulframework详解 第一篇 RESTful规范
- Centos7安装Redis-单节点
1.安装 gcc 编译环境 由于 Redis 使用 C 语言开发,所以官网下载的源码需要进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装. [root@CentOS ~]# yu ...