沈阳工程学院-数据结构与算法实验报告-图

更新时间:2023-10-06 20:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

沈 阳 工 程 学 院

学 生 实 验 报 告

(课程名称: 数据结构与算法 )

实验题目: 图

班 级 计算本121学 号 11 姓 名 lishuai 地 点 F608 指导教师 张 欣 实 验 日 期 : 2013年11月28日

一、实验目的 1.掌握图的基本存储方法。 2.掌握有关图的操作算法并用高级语言实现。 3.熟练掌握图的两种搜索路径的遍历方法。 4.掌握图的有关应用。 二、实验环境 Turbo C或是Visual C++ 三、实验内容与要求 实验1 建立无向图的邻接矩阵或邻接表存储并输出 本题给出了一个无向图的邻接矩阵存储表示,在此基础上稍加改动就可以实现有向图、无向图和有向网的邻接矩阵表示。 实验2 建立图的邻接矩阵或邻接表存储并在此基础上实现图的深度优先遍历和广度优先遍历 图的广度优先遍历用非递归方法很容易理解,非递归方法需要辅助队列Q以及出队、入队函数。 四、实验过程及结果分析 实验1 建立无向图邻接表存储并输出 #include #include #define MAX_NUM 20 #define OK 1 #define ERROR -1 1

typedef int ElemType; typedef char VertexType; typedef struct ArcNode { //定义弧结点 ElemType data; ArcNode *nextarc; }ArcNode,*ArcLink; typedef struct VNode { //定义顶点结点 VertexType data; ArcLink firstarc; }VNode,AdjList[MAX_NUM]; typedef struct { AdjList vdata; int vexnum,arcnum; }ALGraph; //构建图的邻接表 2

int Creategraph(ALGraph &G,int n) { ArcLink p; int e,i; char v,w; for(i=0;i

p->data=(int)(w-'A'+1);printf(\ p->nextarc=G.vdata[(int)(v-'A')].firstarc; G.vdata[(int)(v-'A')].firstarc=p; p=(ArcLink)malloc(sizeof(ArcNode)); p->data=(int)(v-'A'+1); p->nextarc=G.vdata[(int)(w-'A')].firstarc; G.vdata[(int)(w-'A')].firstarc=p; } G.vexnum=n; G.arcnum=e; return OK; } //输出邻接表 int printGraph(ALGraph G){ ArcLink p; int i; for(i=0;inextarc){ printf(\4

本文来源:https://www.bwwdw.com/article/7t7d.html

Top