- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验3图的建立与操作
实验3 图的建立与操作
一、实验目的和要求
在熟悉图的存储、遍历、及其应用的基础上,通过键盘输入数据,建立一个无向图的邻接表,输出该邻接表,并计算每个顶点的度。达到巩固图的存储思想及其存储实现。
二、实验内容
完成下图的邻接表表示,并计算每个顶点的度。
附加要求:进行深度优先和广度优先遍历
三、实验提示
1.类型定义(邻接表存储)
#define MAX_VERTEX_NUM 8 //顶点最大个数
typedef struct ArcNode
{
int adjvex;
struct ArcNode *nextarc;
int weight; //边的权
}ArcNode; //表结点
#define VertexType char //顶点元素类型
typedef struct VNode
{
int degree;//顶点的度,入度
VertexType data;
ArcNode *firstarc;
}VNode/*头结点*/,AdjList[MAX_VERTEX_NUM];
typedef struct{
AdjList vertices;
int vexnum,arcnum;//顶点的实际数,边的实际数
}ALGraph;
2.实验步骤
1)输入图中顶点信息,完成邻接表的VNode内容的初始化。
2)根据图中边的信息,把各边的信息链到firstarc指针链上,同时统计degree
3)输出邻接表。
代码
#include stdafx.h
#includecstdlib
#includeiostream
#define WeightMax 100
#define UNDRIECT
#define MAXDATA 100
#define MAXVEX 10
//#define WEIGHTTREE
//////////////////////////////////////
using namespace std;
///////////////////////////////////////////
////////////////////////////////////////////
typedef char DataType;
struct ENode
{
int tailvex,headvex;
int weight;
struct ENode *tailnext,*headnext;
};
struct VerNode
{
DataType data;
ENode *firstin;
ENode *firstout;
};
//typedef VerNode AdjList[MAXVEX];
struct MGraphs{
VerNode adjList[MAXVEX];
//ENode *edgeList[MAXVEX][MAXVEX];
int numNode,numEdge;
};
//////////////////////////////////////
///////////////////////////////////
int LocateVex(MGraphs G,DataType data)
{
int i=0;
for( i=0;iG.numNode;++i)
{if(G.adjList[i].data==data)
return i;
}
return -1;
}
////////////////////////////////////////
////////////the build graph////////////////
//////////////one construct//////////////////////
void CreatALGraph(MGraphs G)
{
int weight;
int i,j;
DataType vi,vj;
ENode *e;
coutplease input the numNode and numEdgeendl;
cinG.numNodeG.numEdge;
coutplese input the node informationendl;
for(i=0;iG.numNode;i++)
{
cinG.adjList[i].data;
G.adjList[i].firstin=NULL;
G.adjList[i].firstout=NULL;
}
fo
您可能关注的文档
最近下载
- 中国机动车驾驶证英文版模板.pdf
- 浙江中宁硅业有限公司10kt_a高纯一氧化二氮精馏提纯项目环境影响报告表.docx VIP
- 1 《伐檀》公开课一等奖创新教学设计-【中职专用】高一语文(高教版2023-2024基础模块上册).docx VIP
- GB8814-2017型材标准.docx
- 低代码开发师(中级)考试题库.docx VIP
- 埃斯顿Helm吨位仪监视系统—RLG系列说明.pdf
- 人教版(B版2019课标)高中数学选择性必修一2.7.1抛物线的标准方程 学案.docx
- 多维品质管理工具在医院精细化管理中的应用.docx VIP
- 汽车修理工安全操作规程.pptx VIP
- 新高考一轮复习数学全套课件.pptx VIP
文档评论(0)