图的存储

原创 2013年12月02日 22:55:31

在内存中图一般来说有主要是两种存储方式:邻接矩阵、邻接链表

邻接矩阵数据类型定义:

#define MAX 最大顶点个数

typedef struct

{

  int no;//顶点编号

 InforType info;//顶点其他信息

}VertexType;//顶点类型

typedef struct

{

 int edges[MAX][MAX];//边

int n;//顶点个数

int e;//边数

VertexType VInfor[MAX];

}MGraph;

邻接矩阵存储图,可以很容易确定图中任意两个顶点之间是否有边相连,但是如果要确定图中有多少条边,代价就大啦,需要按行和列来对每个元素遍历

 

邻接链表:

#define  MaxVertexNum 100   

typedef char VertexType;  

typedef struct node   //边表节点   

{  

   int adjvex;  

   node* next;  

}EdgeNode;  

 

typedef struct     //顶点表节点   

{  

  VertexType vertex;  

   EdgeNode* firstedge;  //第一条边

}VertexNode;  

  

typedef VertexNode AdjList[MaxVertexNum];  

  

typedef struct   

{   

    AdjList adjlist;  

    int n,e;  

}ALGraph; 

 

邻接链表能够很快确定以某顶点为起点的边,但是要确定以某顶点为终点的边就需遍历所有链表了,所以也可以根据需要建立逆邻接链表,就是对每个顶点链接的都是指向该顶点的边

相关文章推荐

邻接表存储的图的DFS,BFS遍历

  • 2017年04月06日 13:51
  • 4KB
  • 下载

邻接表模板存储稀疏图的边

邻接表 #include #include int head[100100];//表头,head[i]代表起点是i的边的编号 int cnt;//代表边的编号 struct s { int...

顺序图存储

  • 2014年05月29日 11:31
  • 196KB
  • 下载

数据结构报告 图的存储与遍历

  • 2013年12月09日 11:27
  • 115KB
  • 下载

UIImage 图片处理:截图,缩放,设定大小,存储

图片的处理大概分 截图(capture),  缩放(scale), 设定大小(resize),  存储(save) 1.等比率缩放 - (UIImage *)scaleImage:(UII...

Linux 存储结构分析图

  • 2014年12月23日 17:27
  • 611KB
  • 下载

5.1 Tensorflow:图与模型的加载与存储

前言自己学Tensorflow,现在看的书是《TensorFlow技术解析与实战》,不得不说这书前面的部分有点坑,后面的还不清楚.图与模型的加载写的不清楚,书上的代码还不能运行=- =,真是BI….咳...

数据结构6.4图的存储之二邻接表

  • 2014年11月30日 18:34
  • 433KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图的存储
举报原因:
原因补充:

(最多只允许输入30个字)