图的深度优先搜索遍历
来源:互联网 发布:网络手势的含义带图片 编辑:程序博客网 时间:2024/05/28 06:06
1. 代码
//============================ //无向图的遍历//深度优先 //存储结构:邻接表 //非递归算法 //2017.9.26 //========================= #include<stdio.h>#include<stdlib.h>#define MAX_VEX 100typedef struct arcnode{int adjvex;struct arcnode *next;}ARCNODE;typedef struct{//int vertex;//可以用于记录是否访问;程序用visit[] ARCNODE *firstarc;}VERNODE;VERNODE adjlist[MAX_VEX];int creat(){int bv, ev, vexnum, edgnum, i;printf("input vexnum, edgnum:\n");scanf("%d,%d", &vexnum, &edgnum);//initialization for(i=1; i<=vexnum; i++)adjlist[i].firstarc=NULL;printf("input bv,ev\n");for(i=1; i<=edgnum; i++){ARCNODE *p=(ARCNODE*)malloc(sizeof(ARCNODE));scanf("%d,%d", &bv, &ev);p->adjvex=ev;p->next=adjlist[bv].firstarc;adjlist[bv].firstarc=p;//无向图加上以下 p=(ARCNODE*)malloc(sizeof(ARCNODE));p->adjvex=bv;p->next=adjlist[ev].firstarc;adjlist[ev].firstarc=p;}return vexnum;}int visit[MAX_VEX];//记录是否访问 void dfs(int v){visit[v]=1;//vertex=1;//!!!把 = 写成 == 导致莫名其妙的错误23333 printf("%d ", v);ARCNODE *p=adjlist[v].firstarc;while(p){if(visit[p->adjvex]==0)dfs(p->adjvex);p=p->next;}} int main(){int vexnum=creat();int i, stvex;ARCNODE *p;for(i=1; i<MAX_VEX; i++)visit[i]=0;printf("output the adjacency list built:\n");for(i=1;i<=vexnum;i++){printf("%d==>", i);p=adjlist[i].firstarc;while(p){printf("--->%d", p->adjvex);p=p->next;}printf("\n");}printf("input starting vertex:\n");scanf("%d", &stvex);printf("the DFS of graph:\n");dfs(stvex); return 0;}
2. 结果
阅读全文
0 0
- 图的遍历 深度优先搜索 广度优先搜索
- 图的遍历-深度优先搜索
- 深度优先搜索(图的遍历)
- 图的遍历 之 深度优先搜索
- 图的深度优先遍历搜索
- 图的遍历---深度优先搜索(DFS)
- 图的遍历之深度优先搜索
- 【数据结构】图的遍历--深度优先搜索
- 图的深度优先搜索遍历
- 图的遍历(深度优先搜索)
- 图的遍历(深度优先搜索)
- 数据结构--图--图的数组存储表示,深度优先搜索遍历和广度优先搜索遍历
- 【图的实现】“广度优先搜索遍历”以及“深度优先搜索遍历”必会
- 深度优先搜索遍历
- 图的遍历——深度优先搜索
- 【算法导论】图的深度优先搜索遍历(DFS)
- 【算法导论】有向图的深度优先搜索遍历
- 图的遍历—深度、广度优先搜索
- 一维数组冒泡排序
- Linux下设置静态ip
- 108. Convert Sorted Array to Binary Search Tree(DFS)
- mysql学习—Mysql存储引擎
- mac上python3安装问题
- 图的深度优先搜索遍历
- C++的STL之的iterator简单介绍
- 第十课 分组数据
- supervisor
- leetcode解题笔记 51.N-Queens [Hard]
- 如何使用eclipse可以更好的提高我们的工作效率
- 差模干扰与共模干扰
- 四.java多线程之常见线程名词解释
- react diff算法浅析