数据结构实验---图的储存与遍历.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构实验---图的储存与遍历.doc》由会员分享,可在线阅读,更多相关《数据结构实验---图的储存与遍历.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程实验报告学号: 姓名: 实验日期: 2016.1.7实验名称: 图的存贮与遍历一、实验目的掌握图这种复杂的非线性结构的邻接矩阵和邻接表的存储表示,以及在此两种常用存储方式下深度优先遍历(DFS)和广度优先遍历(BFS)操作的实现。二、实验内容与实验步骤题目1:对以邻接矩阵为存储结构的图进行DFS和BFS遍历问题描述:以邻接矩阵为图的存储结构,实现图的DFS和BFS遍历。基本要求:建立一个图的邻接矩阵表示,输出顶点的一种DFS和BFS序列。测试数据:V0V1V4V3V2如图所示题目2:对以邻接表为存储结构的图进行DFS和BFS遍历问题描述:以邻接表为图的存储结构,实现图的DFS和BF
2、S遍历。基本要求:建立一个图的邻接表存贮,输出顶点的一种DFS和BFS序列。测试数据:如图所示1 010 3 3 4 V0V1V2V3V4三、附录: 在此贴上调试好的程序。#include#include#include#define M 100 typedef struct node char vexM2; int edgeM M ; int n,e; Graph;int visitedM;Graph *Create_Graph() Graph *GA; int i,j,k,w; GA=(Graph*)malloc(sizeof(Graph);printf (请输入矩阵的顶点数和边数(用逗号
3、隔开):n);scanf(%d,%d,&GA-n,&GA-e);printf (请输入矩阵顶点信息:n); for(i = 0;in;i+) scanf(%s,&(GA-vexi0),&(GA-vexi1); for (i = 0;in;i+) for (j = 0;jn;j+) GA-edgeij = 0; for (k = 0;ke;k+) printf (请输入第%d条边的顶点位置(i,j)和权值(用逗号隔开):,k+1); scanf (%d,%d,%d,&i,&j,&w); GA-edgeij = w; return(GA);void dfs(Graph *GA, int v) in
4、t i; printf(%c%cn,GA-vexv0,GA-vexv1); visitedv=1; for(i=0; in; i+) if (GA-edgevi=1 & visitedi=0) dfs(GA, i);void traver(Graph *GA) int i; for(i=0; in; i+) visitedi=0; for(i=0; in;i+) if(visitedi=0) dfs(GA, i);void bfs( Graph *GA, int v) int j,k,front=-1,rear=-1; int QM; printf(%c%cn,GA-vexv0,GA-vexv
5、1); visitedv=1; rear=rear+1; Qrear=v; while (front!=rear) front=front+1;k=Qfront; for (j=0; jn; j+) if (GA-edgekj=1 & visitedj=0) printf(%c%cn,GA-vexj0,GA-vexj1); visitedj=1; rear=rear+1; Qrear=j; void traver1(Graph *GA) int i; for (i=0; in;i+) visitedi=0; for (i=0; in; i+) if (visitedi=0) bfs(GA, i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 储存 遍历
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内