数据结构基本算法:图的存储(以邻接链表为例)
来源:互联网 发布:sql获取表的所有列名 编辑:程序博客网 时间:2024/06/14 08:20
数据结构的图的建立方法,简单的邻接链表形式代码:
可运行。
对于其他各种的存储方式,等会有一帖。(发现了好东西。。)
代码如下:有链表和顺序数组组成。链表用来存储边的信息,数组用来用存储顶点的数据信息。
图的示例结构如下:
/***** 图的建立********//******** written by C_Shit_Hu ************///////////////数据结构////////////////****************************************************************************//* 图的存储方式常见的有两种--邻接矩阵存储方法和邻接链表存储方法···邻接矩阵核心思想:利用两个数组存储一个图,一个数组是一个一维数组用于存储顶点信息,一个是一个二维数组用于存储顶点的边的信息···缺点:不适用于存储稀疏图利用邻接表建立图,弥补邻接矩阵的不足的方法。有链表和顺序数组组成。链表用来存储边的信息,数组用来用存储顶点的数据信息。-----具体见博客说明:*//****************************************************************************/
#include <stdio.h>#include <stdlib.h>//定义单链表中的结点的类型typedef struct ArcNode{int adjvex; // 该边指向的顶点在顺序表中的位置struct ArcNode *next; // 下一条边*/}ArcNode;// 顶点类型typedef struct VNode{int data; // 顶点中的数据信息ArcNode *firstarc; // 指向单链表,即指向第一条边}VNode;void CreatGraph(int n , VNode G[] ){int i,e;ArcNode *p , *q;printf("Input the information of the vertex\n");for(i=0;i<n;i++){scanf("%d",&G[i]);G[i].firstarc = NULL; // 初始化第一条边为空}for(i=0;i<n;i++){printf("Creat the edges for the %dth vertex\n",i) ;scanf("%d",&e);while(e!=-1){p = (ArcNode *)malloc(sizeof(ArcNode)); // 创建一条边p->next = NULL;p->adjvex = e;if(G[i].firstarc == NULL) G[i].firstarc = p; // i结点的第一条边else q->next = p; // 下一条边q = p;scanf("%d",&e);}}}int main(){ VNode G[5]; CreatGraph(5,G); getchar(); return 0 ;}
运行结果如下:
稍后转一贴集合版的数据结构的图的存储方式贴。
- 数据结构基本算法:图的存储(以邻接链表为例)
- 以邻接表为存储结构的---图的算法实现
- HDOJ 2063 过山车 ——二分图最大匹配(以邻接矩阵,邻接表为数据结构的匈牙利算法)
- 堆优化的dijkstra算法(以邻接表存储)
- 图的存储结构——邻接表 以SDUT 2138为例
- 【数据结构作业五】以邻接表作存储结构,广度遍历图的优先搜索序列
- 数据结构:图的邻接表存储表示
- 【数据结构】图的存储--邻接表
- 数据结构 图的存储邻接矩阵与邻接链表
- 邻接表存储图的SPFA算法~
- 算法导论--图的存储(邻接表与邻接矩阵)
- 图的邻接表存储算法(93)
- 用邻接链表数据结构存储图 并实现Dijkstra算法
- 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- C语言以邻接表为存储结构的图的构造以及广度优先,深度优先遍历
- 数据结构之图的邻接表的基本操作
- 【自己动手写数据结构】 -- 图的邻接表存储实现
- Linux虚拟文件系统(节点路径搜索)
- 安装MySQL时无法启动服务(could not start the service MYSQL .Error:0)
- 输入两个正整数m和n,求其最大公约数和最小公倍数
- BloomFilter–大规模数据处理利器
- 10个最好的获取免费书籍的网站
- 数据结构基本算法:图的存储(以邻接链表为例)
- poj1860
- 回收InnoDB表空间
- aptana IDE安装SVN
- 24个最好免费下载电子书(Ebooks)的网站
- Android内存优化
- Best Time to Buy and Sell Stock
- [WPF专业编程指南].李应保(奋斗的小鸟)_PDF 电子书
- Android ListView中 每一项都有不同的布局