用c语言实现图的基本存储,图的邻接矩阵存储(C语言实现)
#include
#define INFINITY 1000
#define MAX_VERTEX_NUM 20
#define ERROR 0
#define OK 1
typedef enum{DG,DN,UDG,UDN} GraphKind;
typedef int VRType;
typedef int InfoType;
typedef char VertexTpye;
typedef int Status;
typedef struct ArcCell
{
VRType adj;//该弧的权值
InfoType *info;//该弧相关信息的指针
} ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct
{
char vexs[MAX_VERTEX_NUM];
AdjMatrix arcs;
int vexnum,arcnum;
GraphKind kind;
}MGraph;
PrintGraph(MGraph G)
{
int i,j;
for(i=0;i
{
for(j=0;j
{
if(G.arcs [i][j].adj!=0)
{
printf("%c--->%c %d/n",G.vexs[i],G.vexs[j],G.arcs[i][j]);
}
}
}
}
main()
{
MGraph G;
int i,j,k,w,IncInfo;
char v1,v2;
int LocateVertex(MGraph,VertexTpye);
printf("please Enter into the number of Vertex Arc and Arc_information:/n");
scanf_s("%d,%d,%d",&G.vexnum ,&G.arcnum,&IncInfo);
getchar();
printf("The Number of Vertex is %d,The Number of Arc is %d/n",G.vexnum ,G.arcnum );
for(i=0;i
{ printf("NO.%d Vertex is:",i);
//G.vexs[i]=getchar();
scanf_s("%c",&G.vexs[i]);
getchar();
}
for(i=0;i
{
printf("/nThe Vertex you Enter into is %c:",G.vexs[i]);
}
for(i=0;i
{
for(j=0;j
{
G.arcs [i][j].adj =NULL;//初始化弧的权值为0
//*(G.arcs [i][j].info) =INFINITY;//该弧无相关信息
}
}
for(k=0;k
{ printf("/n please Enter into NO.%d Arc:",k+1);
v1=getche();
printf("/t");
v2=getche();
printf("/t");
scanf_s("%d",&w);
printf("The value between %c and %c is %d/n",v1,v2,w);
i=LocateVertex(G,v1);
j=LocateVertex(G,v2);
G.arcs[i][j].adj =w;
if(IncInfo)
{
}
}
// G.arcs [j][i]=G.arcs [i][j];无向网与有向网的区别点
PrintGraph(G);
getchar();
getchar();
}
int LocateVertex(MGraph G,VertexTpye Vertex)
{
int j=ERROR,k;
for(k=0;k
{
if(G.vexs[k]==Vertex)
{
j=k;
break;
}
}
return(j);
}
上面是代码的实现,及运行结果,程序的运行效率有待提高,有修改意见的同志,请赐教!
****************************************************************
数据结构、C语言、算法学习中......
QQ:392604412
****************************************************************
2010-04-18
用c语言实现图的基本存储,图的邻接矩阵存储(C语言实现)相关推荐
- C语言 数据结构 图的邻接矩阵存储 基本操作(附输入样例和讲解)
代码参照了严蔚敏.吴伟民编写的数据结构(C语言版). 部分内容参考了这位大佬: https://blog.csdn.net/jeffleo/article/details/53326648 所有代码采 ...
- 【数据结构】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)及实现(C语言)
目录 1. 邻接矩阵表示法 1.1 图的邻接矩阵 1.2 创建有向网的邻接矩阵 2. 邻接表表示法 2.1 图的邻接表存储结构 2.2 创建有向图的邻接表 3. 十字链表表示法 3.1 图的十字链表存 ...
- 图的遍历(C语言,邻接表存储的图 - DFS,邻接矩阵存储的图 - BFS)
邻接表存储的图 - DFS /* 邻接表存储的图 - DFS */void Visit( Vertex V ) {printf("正在访问顶点%d\n", V); }/* Visi ...
- c语言数据结构用矩阵存储图,数据结构之---C语言实现图的数组(邻接矩阵)存储表示...
//图的数组(邻接矩阵)存储表示 #include #include #define MAX_VEX_NUM 50 typedef char VertexType; typedef enum { DG ...
- 邻接表形式存储图并且按广度优先搜索遍历的C语言实现
用邻接表形式存储图并且按广度优先搜索打印遍历结果 #include<stdio.h> #define MAX_VERTEX_NUM 20//最多顶点个数 #define ERROR -1t ...
- 【大话数据结构C语言】38 图的存储结构(邻接矩阵)
我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,转载请注明出处 因为图人任意两点之间都可能存在联系,所以无法用数据元素在内存中的物理位置表示元素之间的关系 因此将数组和 ...
- 用邻接表存储图c语言,邻接表、邻接多重表、十字链表及C语言实现
上一节介绍了如何使用顺序存储结构存储邻接多重表和 邻接的意思是顶点之间有边或者弧存在,通过当前顶点,可以直接找到下一个顶点. 邻接表 使用邻接表存储图时,对于图中的每一个顶点和它相关的邻接点,都存储到 ...
- 6-1 邻接矩阵存储图的深度优先遍历 (20 分)(C语言版)
先说思路: DFS两种方法实现:递归和非递归.[不难,看下面代码即可]. 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, vo ...
- 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf
图的深度优先遍历的C语言实现.pdf 维普资讯 九 江 职 业 技 术 学 院 学 报 JournalofJiujiangVocational&TechnicalCollege 2004.2 ...
- 数据结构(C语言版) 第 六 章 图 知识梳理 + 习题详解
目录 一. 图的基本定义和术语 一.图的基本概念 1.度 2.连通 (1)连通图 (2)强连通/强连通图 3.回路 4.完全图 二.图的三种存储结构 1.邻接矩阵表示法 2.邻接表(链式)表示法 3. ...
最新文章
- 分库分表之后,主键的处理方法
- 面试官:群聊消息的已读未读功能,你来设计一个?
- java通过url读取远程数据并保持到本地
- 使用MVVM绑定AppBar事件
- 【论文阅读】SIR模型下网络中多信息源检测 2014-IEEE
- 【算法•日更•第十六期】信息奥赛一本通1597:【 例 1】滑动窗口题解
- MySQL数据库左右连接
- fd抓包数据类型_终端抓包神器 | tcpdump参数解析及使用
- NLP论文阅读1--More Data, More Relations, More Context and More Openness: A Review and Outlook for Relati
- Android通过百度api地址经纬度获取文字位置信息
- JavaScript打开窗口
- 毕业设计之甘特图制作
- python 新词发现
- mac怎么压缩pdf文件大小?
- 乱炖“简书交友”数据之代码(1)
- JS 面试问题: 手写 new
- WIFI视频传输方案
- springboot吕梁学院导师制管理系统毕业设计源码251022
- 构建岗位胜任力模型至关重要
- MATLAB上关于复数矩阵的转置与共轭知识详解
热门文章
- ipad忘记了锁屏密码,已经越狱了
- Java—输入数字星期,输出英文(switch语句)
- 5G(2)5G NR Redcap
- [Vue3]Console报错:不能将类型“string”分配给类型Refstring
- fitnesse 新手入门
- Discuz 二次开发 (一) 目录结构和运行逻辑
- 开博尔智能android播放器C3,Kaiboer开博尔C3第九代双核智能机顶盒KIUI 7.0安卓4.4.2线刷固件 电视盒固件 开博尔...
- Direct3D 11
- COOX培训材料 — SCADA(3.Sensor)
- Java三齐王乱点兵算法,【ACM】韩信点兵算法