大学数据结构实验(五.图型结构的应用一)

网友投稿 1417 2022-11-24

大学数据结构实验(五.图型结构的应用一)

大学数据结构实验(五.图型结构的应用一)

大学程序实验.数据结构.图型结构的应用一.邻接矩阵

​​0 目录​​​​5 图型结构的应用​​

​​5.1 邻接矩阵一​​

​​5.1.1 题目​​​​5.1.2 源码​​​​1.1.3 -​​

​​2 下一章​​

0 目录

5 图型结构的应用

5.1 邻接矩阵一

5.1.1 题目

1、图的建立 从键盘输入数据建立图,并打印 实验要求:在程序中定义下述函数,并实现要求的函数功能: CreateGraph(): 按从键盘输入数据建立图 PrintGrah():打印图 实验提示: 图的存储可采用邻接矩阵或邻接表; 打印出每一个顶点信息和邻接矩阵或邻接表 注意问题: 有向图,无向图,有向网,无向网任选一种。 2、深度优先遍历以及广度优先遍历 问题描述:从键盘输入数据建立图并打印深度优先遍历序列和广度优先遍历序列。 实验提示: 图的存储可采用邻接矩阵或邻接表; 有向图,无向图,有向网,无向网任选一种。 5、求一条从顶点 v 到顶点 s 的简单路径 实验提示:图的存储可采用邻接矩阵或邻接表;

5.1.2 源码

// MGraph.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "malloc.h" #define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXVEX 100#define MAXSIZE 100#define INFINITY INT_MAXtypedef int Status;typedef char VertexType[10];typedef int EdgeType;typedef int Boolean;typedef int QElemType;typedef struct { VertexType vexs[MAXVEX]; EdgeType arc[MAXVEX][MAXVEX]; int numVertexs,numEdges;}MGraph;//广度遍历用队列结构体typedef struct{ QElemType data[MAXSIZE]; int front; int rear;}Queue;void CreateMGraph(MGraph *G){ int i,j,k,w; printf("请输入顶点数和边数:\n"); scanf("%d%d",&G->numVertexs,&G->numEdges); printf("\n"); for(i=0;inumVertexs;i++) { printf("顶点%d:",i+1); scanf("%s",G->vexs[i]); } for(i=0;inumVertexs;i++) { for(j=0;jnumVertexs;j++) { G->arc[i][j]=0;//邻接矩阵初始化 } } printf("\n"); for(k=0;knumEdges;k++) { printf("请输入第%d条边(vi,vj)上的下标i,下标j和权w:\n",k+1); scanf("%d%d%d",&i,&j,&w); G->arc[i-1][j-1]=w; G->arc[j-1][i-1]=G->arc[i-1][j-1];//无向网 }}void PrintMGraph(MGraph G){ int i,j; printf("图的顶点为:\n"); for(i=0;ifront=0; Q->rear=0; return OK;}Status EnQueue(Queue *Q,QElemType e){ if((Q->rear+1)%MAXSIZE==Q->front) { return ERROR; } Q->data[Q->rear]=e; Q->rear=(Q->rear+1)%MAXSIZE; return OK;}Status DeQueue(Queue *Q,QElemType *e){ if(Q->front==Q->rear) { return ERROR; } *e=Q->data[Q->front]; Q->front=(Q->front+1)%MAXSIZE; return OK;}Status QueueEmpty(Queue *Q){ if(Q->front==Q->rear) { return TRUE; } else { return FALSE; }}void BFSTraverse(MGraph G){ int i,j; Queue Q; for(i=0;i字符串 { printf("%s ",Path[i]); } } printf("\n"); } else { for(i=0;i

1.1.3 -

链接地址: ​​5.1_MGRAPH.CPP​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大学数据结构实验(三.栈和队列的应用二)
下一篇:大学数据结构实验(四.树型结构及其应用四)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~