数据结构上机实践第11周项目3 - 图遍历算法实现
//*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;
}
//*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 - 图遍历算法实现相关推荐
- 数据结构上机实践第11周项目1 - 图基本算法库
图基本算法库 本次实践将建立图的基本算法库,用以丰富算法库,灵活应对更多样的工程,所谓"技多不压身",算法亦如此. 本次实践将运用多文件组织工程的建立,点击此处参考.(编译 ...
- 数据结构上机实践第11周项目2 - 操作用邻接表存储的图
操作用邻接表存储的图 本次实践将对用邻接表存储的图进行按要求操作,运用起所建立的图的算法库.本次实践所用到的算法库点击此处参考.(编译环境:VC++6.0) 本次实践的具体要求如下: 假设图G采用邻接 ...
- 数据结构上机实践第八周项目9-广义表算法库及应用
广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括: ① 头文glist.h,定义数据类型,声明函数: ② ...
- 数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列
自建算法库--顺序环形队列 本次实践将建立顺序环形队列的算法库,用于之后的工程中 实现源代码如下: 1.squeue.h /* copyright (t) 2017,烟台大学计算机学院 *All ri ...
- 数据结构上机实践第13周项目1 - 验证Prim算法的验证
验证Prim算法的验证 本次实践所用到的算法库点击此处. 实现源代码: //*Copyright (c)2017,烟台大学计算机与控制工程学院* //*All rights reservrd.* // ...
- 数据结构上机实践第八周项目3-顺序串算法
顺序串算法 本次实践项目要求如下: 采用顺序存储方式存储串,实现下列算法并测试: (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符: void Trans(SqString * ...
- 数据结构上机实践第七周项目2 - 自建算法库——链队(链式队列)
自建算法库--链队(链式队列) 实现源代码如下: 1.liqueue.h /* copyright (t) 2016,烟台大学计算机学院 *All rights reserved. *文件工程名称:1 ...
- 数据结构上机实践第10周项目1 - 二叉树算法验证
二叉树算法验证 本次实践主要是对于二叉树算法的验证,达成对于算法熟练掌握的目的. 实践所用的二叉树算法库点击此处可以参考(编译环境:VC++6.0) 一.层次遍历算法验证 验证具体要求如下: 实现二叉 ...
- 数据结构上机实践第三周项目4(2)—顺序表应用
[项目 - 顺序表应用] 定义一个采用顺序结构存储的线性表,设计算法将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1). 项目中用到的算法库为list.cpp和list ...
最新文章
- 前后端分离的接口规范是什么?
- redis 突然大量逐出导致读写请求block
- 双网卡连接mysql数据库_双网卡实现两台电脑共享上网经验笔记
- NULL和INITIAL的区别 and database interface
- 【codecombat】 试玩全攻略 第十四关 已知敌人
- springboot 获取项目路径_怎样学习 SpringBoot
- java代码调用python_java调用python代码-阿里云开发者社区
- python difflib 源码_python difflib 模块
- hadoop 命令行相关操作
- 搜狗王小川:搜狗的语音识别比阿里和科大讯飞的好
- javscript DOM基础知识(常用篇)
- 服务器内存系统,服务器内存系统容量
- Xshell使用教程——问答方式
- simulink模型动静态测试
- 2022蓝桥杯java
- Win11 ARM64深度解析
- x86汇编游戏——2048
- threejs效果记录
- Android读取服务器图片
- 用python中的turtle库绘制一些有趣的图
热门文章
- bzoj 1048: [HAOI2007]分割矩阵(记忆化搜索)
- bzoj 3503: [Cqoi2014]和谐矩阵(高斯消元)
- 2208: [Jsoi2010]连通数(Trajan+bitset)
- NYOJ 1272:表达式求值(2016河南省ACM-A)
- python利用pygame框架实现类似推箱子游戏 Star Pusher
- 吴恩达神经网络和深度学习-学习笔记-28-端到端的深度学习(end-to-end deep learning )
- Echarts数据可视化grid直角坐标系(xAxis、yAxis),开发全解+完美注释
- 有关8086必须记住的几个数(持续更新)
- 【转】C#使用GDI+制作背景颜色淡入淡出效果的按钮
- P1251 餐巾计划问题 费用流