图的数组表示法-数据结构(18)
来源:互联网 发布:淘宝申诉入口网址 编辑:程序博客网 时间:2024/04/24 15:36
一、图
参见P160-P163,关于图这种数据结构,其实就是点与弧,因此表示出这种弧也就表示图。
二、存储结构
//================图的存储结构-数组表示法#define INFINITY 9999 //最大值#define MAX_VERTEX_NUM 20 //最大顶点个数typedef int VRType;typedef char VertexType;//用字符来标识顶点向量typedef enum {DG,DN,UDG,UDN}GraphKind;//标识图的类型 有向图,有向网,无向图,无向网//这个就是每个弧保存的信息typedef struct ArcCell{VRType adj;//如果是无权图的话用01表示是否有联接 在有权的图上 默认值是无穷//InfoType *info;//该弧相关信息的指针}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//顶点信息和弧保存的信息typedef struct {VertexType vexs[MAX_VERTEX_NUM];//顶点向量AdjMatrix arcs;//邻接矩阵int vexnum,arcnum;//图的当前的顶点数和弧数GraphKind kind;//图的种类标识}MGraph;
三、操作
Status CreateUDN(MGraph &G,int vexnum,char * vexs,int arcnum,int maps[][6]){//创建无向连通图 vexnum顶点个数 ,vexs对应每个顶点的信息,弧的条数 ,maps对应的各弧的关系G.vexnum = vexnum;G.arcnum = arcnum;G.kind = UDN;for (int i = 0; i < G.vexnum; i++){G.vexs[i] = vexs[i];}//初始化邻阶矩阵 并构造邻接矩阵for (int i = 0; i < G.vexnum; i++){for (int j = 0; j < G.vexnum; j++){if (maps[i][j] == 0){//设置为无穷大的边 G.arcs[i][j].adj = INFINITY;}else{G.arcs[i][j].adj = maps[i][j];//对称弧}}} return OK;}void PrintfUDN(MGraph &G){//打印无向图for (int i = 0; i < G.vexnum; i++){for (int j = 0; j < G.vexnum; j++){printf("%d\t", G.arcs[i][j].adj);}printf("\n");}}
四、执行
int vexnum = 6;//6个顶点char * vexs = "abcdef";int arcnum = 8;//有5条弧int maps[6][6] = { { 0, 0, 10, 0, 30, 100 },{ 0, 0, 5, 0, 0, 0 },{ 0, 0, 0, 50, 0, 0 },{ 0, 0, 0, 0, 0, 10 },{ 0, 0, 0, 20, 0, 60 }, { 0, 0, 0, 0, 0, 0 }};MGraph G;CreateUDN(G,vexnum,vexs,arcnum,maps);PrintfUDN(G);
输出:
9999 9999 10 9999 30 1009999 9999 5 9999 9999 99999999 9999 9999 50 9999 99999999 9999 9999 9999 9999 109999 9999 9999 20 9999 609999 9999 9999 9999 9999 9999请按任意键继续. . .
阅读全文
0 0
- 图的数组表示法-数据结构(18)
- 数据结构之图的数组表示法
- 数据结构---图(数组表示法)
- 数据结构:图的表示
- 数据结构:图的表示
- 数据结构学习笔记 --- 图(数组表示法)
- C数据结构学习历程(5) 图之数组表示法
- 数据结构学习笔记 --- 图(数组表示法)
- 数据结构——图的数组实现(邻接矩阵表示法)
- C数据结构学习历程(5) 图之数组表示法的BFS
- 【数据结构】算法7.1-7.2 图的存储结构-数组表示法
- 数据结构 图的邻接矩阵表示法
- 图的数组表示
- 图算法-----图的邻接矩阵表示法(数组表示法)
- 图 数组表示法
- 数据结构,图的邻接矩阵表示
- 图的高效数据结构表示
- 图的高效数据结构表示
- Qt标准对话框之输入对话框(QInputDialog)
- 【Web】Bootstrap栅格布局系统设计原理
- 操作系统模拟内存管理实验,C语言链表实现,附源码
- 51单片机的串口通信实例
- 人见人爱A+B
- 图的数组表示法-数据结构(18)
- 01.java简介
- 廖雪峰的Git教程八-添加远程仓库
- POJ 2528(线段树+离散化)
- 平方和与立方和
- Nginx+Tomcat搭建高性能负载均衡集群
- Mac下Apache2本地域名配置相关
- 小技巧教你解决此windows副本不是正版的问题
- css绝对定位、相对定位和文档流的那些事