#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语言实现)相关推荐

  1. C语言 数据结构 图的邻接矩阵存储 基本操作(附输入样例和讲解)

    代码参照了严蔚敏.吴伟民编写的数据结构(C语言版). 部分内容参考了这位大佬: https://blog.csdn.net/jeffleo/article/details/53326648 所有代码采 ...

  2. 【数据结构】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)及实现(C语言)

    目录 1. 邻接矩阵表示法 1.1 图的邻接矩阵 1.2 创建有向网的邻接矩阵 2. 邻接表表示法 2.1 图的邻接表存储结构 2.2 创建有向图的邻接表 3. 十字链表表示法 3.1 图的十字链表存 ...

  3. 图的遍历(C语言,邻接表存储的图 - DFS,邻接矩阵存储的图 - BFS)

    邻接表存储的图 - DFS /* 邻接表存储的图 - DFS */void Visit( Vertex V ) {printf("正在访问顶点%d\n", V); }/* Visi ...

  4. c语言数据结构用矩阵存储图,数据结构之---C语言实现图的数组(邻接矩阵)存储表示...

    //图的数组(邻接矩阵)存储表示 #include #include #define MAX_VEX_NUM 50 typedef char VertexType; typedef enum { DG ...

  5. 邻接表形式存储图并且按广度优先搜索遍历的C语言实现

    用邻接表形式存储图并且按广度优先搜索打印遍历结果 #include<stdio.h> #define MAX_VERTEX_NUM 20//最多顶点个数 #define ERROR -1t ...

  6. 【大话数据结构C语言】38 图的存储结构(邻接矩阵)

    我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,转载请注明出处 因为图人任意两点之间都可能存在联系,所以无法用数据元素在内存中的物理位置表示元素之间的关系 因此将数组和 ...

  7. 用邻接表存储图c语言,邻接表、邻接多重表、十字链表及C语言实现

    上一节介绍了如何使用顺序存储结构存储邻接多重表和 邻接的意思是顶点之间有边或者弧存在,通过当前顶点,可以直接找到下一个顶点. 邻接表 使用邻接表存储图时,对于图中的每一个顶点和它相关的邻接点,都存储到 ...

  8. 6-1 邻接矩阵存储图的深度优先遍历 (20 分)(C语言版)

    先说思路: DFS两种方法实现:递归和非递归.[不难,看下面代码即可]. 试实现邻接矩阵存储图的深度优先遍历. 函数接口定义: void DFS( MGraph Graph, Vertex V, vo ...

  9. 实验报告C语言实现图的深度遍历,图的深度优先遍历的C语言实现.pdf

    图的深度优先遍历的C语言实现.pdf 维普资讯 九 江 职 业 技 术 学 院 学 报 JournalofJiujiangVocational&TechnicalCollege 2004.2 ...

  10. 数据结构(C语言版) 第 六 章 图 知识梳理 + 习题详解

    目录 一. 图的基本定义和术语 一.图的基本概念 1.度 2.连通 (1)连通图 (2)强连通/强连通图 3.回路 4.完全图 二.图的三种存储结构 1.邻接矩阵表示法 2.邻接表(链式)表示法 3. ...

最新文章

  1. 分库分表之后,主键的处理方法
  2. 面试官:群聊消息的已读未读功能,你来设计一个?
  3. java通过url读取远程数据并保持到本地
  4. 使用MVVM绑定AppBar事件
  5. 【论文阅读】SIR模型下网络中多信息源检测 2014-IEEE
  6. 【算法•日更•第十六期】信息奥赛一本通1597:【 例 1】滑动窗口题解
  7. MySQL数据库左右连接
  8. fd抓包数据类型_终端抓包神器 | tcpdump参数解析及使用
  9. NLP论文阅读1--More Data, More Relations, More Context and More Openness: A Review and Outlook for Relati
  10. Android通过百度api地址经纬度获取文字位置信息
  11. JavaScript打开窗口
  12. 毕业设计之甘特图制作
  13. python 新词发现
  14. mac怎么压缩pdf文件大小?
  15. 乱炖“简书交友”数据之代码(1)
  16. JS 面试问题: 手写 new
  17. WIFI视频传输方案
  18. springboot吕梁学院导师制管理系统毕业设计源码251022
  19. 构建岗位胜任力模型至关重要
  20. MATLAB上关于复数矩阵的转置与共轭知识详解

热门文章

  1. ipad忘记了锁屏密码,已经越狱了
  2. Java—输入数字星期,输出英文(switch语句)
  3. 5G(2)5G NR Redcap
  4. [Vue3]Console报错:不能将类型“string”分配给类型Refstring
  5. fitnesse 新手入门
  6. Discuz 二次开发 (一) 目录结构和运行逻辑
  7. 开博尔智能android播放器C3,Kaiboer开博尔C3第九代双核智能机顶盒KIUI 7.0安卓4.4.2线刷固件 电视盒固件 开博尔...
  8. Direct3D 11
  9. COOX培训材料 — SCADA(3.Sensor)
  10. Java三齐王乱点兵算法,【ACM】韩信点兵算法