版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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<stdio.h>#include<malloc.h>#include<string.h>#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
3、*)malloc(sizeof(Graph);printf ("请输入矩阵的顶点数和边数(用逗号隔开):n");scanf("%d,%d",&GA->n,&GA->e);printf ("请输入矩阵顶点信息:n"); for(i = 0;i<GA->n;i+) scanf("%s",&(GA->vexi0),&(GA->vexi1); for (i = 0;i<GA->n;i+) for (j = 0;j<GA->n;j+)
4、 GA->edgeij = 0; for (k = 0;k<GA->e;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) int i; printf("%c%cn",GA->vexv0,GA->vexv1); visitedv=1; for(i=0; i<G
5、A->n; i+) if (GA->edgevi=1 && visitedi=0) dfs(GA, i);void traver(Graph *GA) int i; for(i=0; i<GA->n; i+) visitedi=0; for(i=0; i<GA->n;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->vex
6、v1); visitedv=1; rear=rear+1; Qrear=v; while (front!=rear) front=front+1;k=Qfront; for (j=0; j<GA->n; 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; i<GA->n;i+)
7、 visitedi=0; for (i=0; i<GA->n; i+) if (visitedi=0) bfs(GA, i); typedef struct NODE int adjvex; struct NODE *next; ENode;typedef struct NODE1 char vex2; ENode *first; VexNode;typedef struct FS1VexNode GLM;int bian,top;FS;FS *CreateGL( ) FS *kk=(FS *)malloc(sizeof(FS); int i,j,k; ENode *s; prin
8、tf("请输入顶点数和边数(用逗号隔开):n"); scanf("%d,%d",&kk->top, &kk->bian); printf("请输入顶点信息:n"); for (i=0; i<kk->top; i+) scanf("%s",kk->GLi.vex); kk->GLi.first=NULL; printf("请输入边的信息(i,j):n"); for (k=0;k<kk->bian;k+) scanf("n%d
9、,%d",&i,&j); s =(ENode*)malloc(sizeof(ENode); s->adjvex=j; s->next=kk->GLi.first; kk->GLi.first =s; return kk;void DFS(FS *kk, int v) ENode *w; int i; printf("%sn",kk->GLv.vex); visitedv=1; w=kk->GLv.first ; while (w!=NULL) i=w->adjvex; if (visitedi=0) DFS
10、(kk,i); w=w->next; void TRAVER(FS *kk) int i; for(i=0; i<kk->top;i+) visitedi=0; for(i=0; i<kk->top; i+) if(visitedi=0) DFS(kk, i); void BFS(FS *kk, int v) int QM, front=-1,rear=-1; ENode *w; int i, k; printf("%sn",kk->GLv.vex); visitedv=1; rear=rear+1; Qrear=v; while (fr
11、ont!=rear) front=front+1; k=Qfront; w=kk->GLk.first; while(w!=NULL) i=w->adjvex; if( visitedi=0) visitedi=1; printf("%s",kk->GLi.vex); rear=rear+1; Qrear=i; w=w->next; void TRAVER1(FS *kk) int i; for(i=0; i<kk->top;i+) visitedi=0; for(i=0; i <kk->top;i+) if(visitedi
12、=0) BFS(kk,i); int main() int i=0; Graph *p; FS *q; while(i=1) /*建立菜单*/char jz30="1.创建邻接矩阵"char jd30="2.邻接矩阵DFS遍历"char jb30="3.邻接矩阵BFS遍历"char bg30="4.创建邻接表"char bd30="5.邻接表DFS遍历"char bb30="6.邻接表BFS遍历"char tc30="7.退出"char mn30=&quo
13、t;菜单"int l=strlen(jd);int o=strlen(mn);int m,n;printf("n");for(m=0;m<=(2*l-o)/2;m+)printf(" ");printf("%s",mn);for(m=0;m<=(2*l-o)/2;m+)printf(" ");printf("n");for(m=0;m<=2*l;m+)printf("*");printf("n");printf("* %s *n* %s *n* %s *n* %s *n* %s *n* %s *n* %s *n",jz,jd,jb,bg,bd,bb,tc);for(m=0;m<=2*l;m+)printf("*");printf("n");/*选择功能*/printf("请输入所需功能序号:");scanf("%d",&n);switch(n) case 1: p=Create_Graph();break; case 2: traver(p);break; case 3: t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026吉林省高速公路集团有限公司招聘165人备考题库含答案详解(考试直接用)
- 2026陕西西安医学院第二附属医院硕士人才招聘51人备考题库带答案详解(突破训练)
- 2026安徽铜陵创邑传媒有限公司招聘2人备考题库【含答案详解】
- 2026江西中材科技(萍乡)风电叶片有限公司招聘24人备考题库及答案详解【夺冠系列】
- 2026江西萍乡市国盛控股发展集团有限公司上半年高层次人才招聘6人备考题库带答案详解ab卷
- 2026新疆得仁水务发展有限公司市场化选聘公司及子公司管理人员6人备考题库带答案详解(夺分金卷)
- 2026山东枣庄市滕州市招聘教师87人备考题库及参考答案详解(研优卷)
- 2026甘肃武威古浪县海子滩镇中心卫生院招聘2人备考题库含答案详解(a卷)
- 2026浙江大学工程训练中心招聘2人备考题库带答案详解(完整版)
- 2026江苏盐城市射阳县教育局下属事业单位赴高校招聘教师17人备考题库附参考答案详解(完整版)
- 基于沉浸式体验下的城市形象构建与传播研究-以西安大唐不夜城为例
- 建筑工程测量 第3版 习题及答案 单元2 水准测量-作业参考题解
- 2025光伏电站巡视规范
- 《工业机器人技术基础》课件 2.3.1 工业机器人的内部传感器
- 2025年副高卫生职称-公共卫生类-健康教育与健康促进(副高)代码:091历年参考题库含答案解析(5套)
- 林地勘界协议书
- 物业管家的一天培训课件
- 2025年高考江苏卷物理真题(原卷版)
- 科学防癌与健康生活-肿瘤防治科普指南
- 冠状动脉粥样硬化性心脏病猝死防治专家共识解读 2
- 供水考试试题及答案
评论
0/150
提交评论