图遍历算法实现
本次实践将运用图结构基本算法库,进行遍历操作的实现,本次实践到的算法库点击此处参考。(编译环境:VC++6.0)
1.深度优先遍历——DFS
测试用图:
测试时用的图是,可以使用其他类型的图代替。
实现源代码:
//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年11月16日*
//*版本号:v1.0*
//*问题描述:测试函数*
//*输入描述:无*
//*程序输出:无*
#include <stdio.h>
#include <malloc.h>
#include "graph.h"
int visited[MAXV];
void DFS(ALGraph *G, int v)
{ArcNode *p;int w;visited[v]=1;printf("%d ", v);p=G->adjlist[v].firstarc;while (p!=NULL){w=p->adjvex;if (visited[w]==0)DFS(G,w);p=p->nextarc;}
}int main()
{int i;ALGraph *G;int A[5][5]={{0,1,0,1,0},{1,0,1,0,0},{0,1,0,1,1},{1,0,1,0,1},{0,0,1,1,0}};ArrayToList(A[0], 5, G);for(i=0; i<MAXV; i++) visited[i]=0;printf(" 由2开始深度遍历:");DFS(G, 2);printf("\n");for(i=0; i<MAXV; i++) visited[i]=0;printf(" 由0开始深度遍历:");DFS(G, 0);printf("\n");return 0;
}
运行结果截图:

2.广度优先遍历——BFS
测试用图:
测试时用的图是,可以使用其他类型的图代替。
实现源代码:
//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年11月16日*
//*版本号:v1.0*
//*问题描述:测试函数*
//*输入描述:无*
//*程序输出:无*
#include <stdio.h>
#include <malloc.h>
#include "graph.h"void BFS(ALGraph *G, int v)
{ArcNode *p;int w,i;int queue[MAXV],front=0,rear=0; //定义循环队列int visited[MAXV];     //定义存放节点的访问标志的数组for (i=0; i<G->n; i++) visited[i]=0; //访问标志数组初始化printf("%2d",v);            //输出被访问顶点的编号visited[v]=1;                       //置已访问标记rear=(rear+1)%MAXV;queue[rear]=v;              //v进队while (front!=rear)         //若队列不空时循环{front=(front+1)%MAXV;w=queue[front];             //出队并赋给wp=G->adjlist[w].firstarc;   //找w的第一个的邻接点while (p!=NULL){if (visited[p->adjvex]==0){printf("%2d",p->adjvex); //访问之visited[p->adjvex]=1;rear=(rear+1)%MAXV; //该顶点进队queue[rear]=p->adjvex;}p=p->nextarc;       //找下一个邻接顶点}}printf("\n");
}int main()
{ALGraph *G;int A[5][5]={{0,1,0,1,0},{1,0,1,0,0},{0,1,0,1,1},{1,0,1,0,1},{0,0,1,1,0}};ArrayToList(A[0], 5, G);printf(" 由2开始广度遍历:");BFS(G, 2);printf(" 由0开始广度遍历:");BFS(G, 0);return 0;
}
运行结果截图:

数据结构上机实践第11周项目3 - 图遍历算法实现相关推荐

  1. 数据结构上机实践第11周项目1 - 图基本算法库

    图基本算法库   本次实践将建立图的基本算法库,用以丰富算法库,灵活应对更多样的工程,所谓"技多不压身",算法亦如此.   本次实践将运用多文件组织工程的建立,点击此处参考.(编译 ...

  2. 数据结构上机实践第11周项目2 - 操作用邻接表存储的图

    操作用邻接表存储的图 本次实践将对用邻接表存储的图进行按要求操作,运用起所建立的图的算法库.本次实践所用到的算法库点击此处参考.(编译环境:VC++6.0) 本次实践的具体要求如下: 假设图G采用邻接 ...

  3. 数据结构上机实践第八周项目9-广义表算法库及应用

    广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括:  ① 头文glist.h,定义数据类型,声明函数:  ② ...

  4. 数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列

    自建算法库--顺序环形队列 本次实践将建立顺序环形队列的算法库,用于之后的工程中 实现源代码如下: 1.squeue.h /* copyright (t) 2017,烟台大学计算机学院 *All ri ...

  5. 数据结构上机实践第13周项目1 - 验证Prim算法的验证

    验证Prim算法的验证 本次实践所用到的算法库点击此处. 实现源代码: //*Copyright (c)2017,烟台大学计算机与控制工程学院* //*All rights reservrd.* // ...

  6. 数据结构上机实践第八周项目3-顺序串算法

    顺序串算法 本次实践项目要求如下: 采用顺序存储方式存储串,实现下列算法并测试:  (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:  void Trans(SqString * ...

  7. 数据结构上机实践第七周项目2 - 自建算法库——链队(链式队列)

    自建算法库--链队(链式队列) 实现源代码如下: 1.liqueue.h /* copyright (t) 2016,烟台大学计算机学院 *All rights reserved. *文件工程名称:1 ...

  8. 数据结构上机实践第10周项目1 - 二叉树算法验证

    二叉树算法验证 本次实践主要是对于二叉树算法的验证,达成对于算法熟练掌握的目的. 实践所用的二叉树算法库点击此处可以参考(编译环境:VC++6.0) 一.层次遍历算法验证 验证具体要求如下: 实现二叉 ...

  9. 数据结构上机实践第三周项目4(2)—顺序表应用

    [项目 - 顺序表应用] 定义一个采用顺序结构存储的线性表,设计算法将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1). 项目中用到的算法库为list.cpp和list ...

最新文章

  1. 前后端分离的接口规范是什么?
  2. redis 突然大量逐出导致读写请求block
  3. 双网卡连接mysql数据库_双网卡实现两台电脑共享上网经验笔记
  4. NULL和INITIAL的区别 and database interface
  5. 【codecombat】 试玩全攻略 第十四关 已知敌人
  6. springboot 获取项目路径_怎样学习 SpringBoot
  7. java代码调用python_java调用python代码-阿里云开发者社区
  8. python difflib 源码_python difflib 模块
  9. hadoop 命令行相关操作
  10. 搜狗王小川:搜狗的语音识别比阿里和科大讯飞的好
  11. javscript DOM基础知识(常用篇)
  12. 服务器内存系统,服务器内存系统容量
  13. Xshell使用教程——问答方式
  14. simulink模型动静态测试
  15. 2022蓝桥杯java
  16. Win11 ARM64深度解析
  17. x86汇编游戏——2048
  18. threejs效果记录
  19. Android读取服务器图片
  20. 用python中的turtle库绘制一些有趣的图

热门文章

  1. bzoj 1048: [HAOI2007]分割矩阵(记忆化搜索)
  2. bzoj 3503: [Cqoi2014]和谐矩阵(高斯消元)
  3. 2208: [Jsoi2010]连通数(Trajan+bitset)
  4. NYOJ 1272:表达式求值(2016河南省ACM-A)
  5. python利用pygame框架实现类似推箱子游戏 Star Pusher
  6. 吴恩达神经网络和深度学习-学习笔记-28-端到端的深度学习(end-to-end deep learning )
  7. Echarts数据可视化grid直角坐标系(xAxis、yAxis),开发全解+完美注释
  8. 有关8086必须记住的几个数(持续更新)
  9. 【转】C#使用GDI+制作背景颜色淡入淡出效果的按钮
  10. P1251 餐巾计划问题 费用流