- 1、本文档共99页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对有向图,无向图,有向网,无向网各种操作
// ly7.cpp : Defines the entry point for the console application.
//
#include stdafx.h
#include stdio.h
#include stdlib.h
#define MAX 20
#include iostream
#define Max_Ver_Num 20
#includemalloc.h
#includelimits.h
#define MAX_SIZE 20
//无向网prime算法
#define MAXCOST 0x7fffffff
//拓扑 排序
#define MAX_VERTEX_NUM 20
using namespace std;
typedef char VertexType;
// 结构体
void ShowMainMenu()
{
cout\n;
cout ***************图的基本操作及应用******************\n;
cout * 1 无向图的基本操作及应用 *\n;
cout * 2 无向网的基本操作及应用 *\n;
cout * 3 有向图的基本操作及应用 *\n;
cout * 4 有向网的基本操作及应用 *\n;
cout * 5 退出 *\n;
cout ***************************************************\n;
}
//无向图邻接矩阵
typedef int VexType;
typedef VexType Mgraph[MAX][MAX];
void creat_mg(Mgraph G);
Mgraph G1;
int n,e,v0;
void creat_mg(Mgraph G) {
int i,j,k;
printf (\n请输入无向图的顶点数和边数,如(6,5));
scanf (%d,%d,n,e);
for (i=1;i=n;i++)
for (j=1;j=n;j++)G[i][j]=0; //将邻接矩阵初始化
for (k=1;k=e;k++) {
printf (\n请输入每条边的两个顶点编号,如(2,5):);
scanf (%d,%d,i,j);
G[i][j]=1;
G[j][i]=1;
//邻接矩阵是对称矩阵
}
int a,b;
for (a=1;a=n;a++)
{
printf (\n);
for (b=1;b=n;b++)
printf (%5d,G[a][b]);
}
printf (\n);
}
/***************************************************************************/
//================图的邻接表存储表示==================//
struct edgenode
{//表结点
int endver; //该边所指向的顶点的位置
edgenode* edgenext; //指向下一条边的指针
};
struct vexnode
{//头结点
char vertex; //顶点信息(字符型)
edgenode * edgelink; //指向第一条依附于该顶点的边的指针
};
struct Graph
{//无向图
vexnode adjlists[Max_Ver_Num]; //头结点存储数组
int vexnum, arcnum; //图的当前顶点数和边数
};
//================队列的定义及相关函数的实现===============//
struct QueueNode
{
int nData; //队列中的元素
QueueNode* next;
};
struct Queu
文档评论(0)