图的存储结构
来源:互联网 发布:逆波兰表达式算法 java 编辑:程序博客网 时间:2024/05/29 15:42
图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,即图没有顺序映像的存储结构,用链式映像结构则会浪费很多存储单元,所以图有自己的存储结构,常用的为数组表示法(邻接矩阵法),邻接表法
邻接矩阵表示法
#define INFINITY INT_MAX//最大值#define MAX_VERTEX_NUM 20//最大顶点个数 #define MAX_INFO 20//相关信息字符串的最大长度+1 typedef int VRType;typedef char InfoType;typedef char VertexType; typedef enum{DG,DN,UDG,UDN} GraphKind;//图的种类 /*图的种类DG(有向图),DN(有向网),UDG(无向图),UDN(无向网)*/typedef int Status;typedef struct ArcCell{VRType adj;//VRType是顶点间关系类型,对无权图,用1或0表示相邻否,对有权图,则为权值类型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;邻接表表示
#define MAX_VERTEX_NUM 20typedef char VertexType;typedef char InfoType; typedef struct ArcNode//单链表中的结点 {int adjvex;//该弧所指向的顶点的位置struct ArcNode *nextarc;//指向下一条弧的指针InfoType *info;//该弧相关信息的指针 }ArcNode;typedef struct VNode//表头结点 {VertexType data;//顶点信息ArcNode *firstarc;//指向第一条依附该顶点的指针 }VNode,AdjList[MAX_VERTEX_NUM];typedef struct{AdjList vertices;int vexnum,arcnum;//图的当前顶点数和弧数int kind;//图的种类标记 }ALGraph;
阅读全文
0 0
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 【图的存储结构】
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- 图的存储结构
- #Android学习计划# #第四周# 话题:关于startActivityForResult
- 最大连续子数列和
- SQL 按时间区间选取
- 嵌入式项目1--UCOSIII移植
- 190. Reverse Bits
- 图的存储结构
- Coursera 编程题 #3 运算符重载 写一个二维数组类 Array2心得
- TCP/UDP 区别
- 【工具使用】图形化工具----Jeddict
- python 之 python3内置函数
- 模拟双色球案例
- Hadoop之YARN在单节点上运行
- vue-router嵌套路由
- 最短路径dijkstra(从s到t)