数据结构之(图存储结构之)邻接矩阵
2013-10-24 19:56
417 查看
图常用的存储结构有:邻接矩阵、邻接表、十字链表、邻接多重表、边集数组。
图的邻接矩阵:
其用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组存储图中的边或弧的信息。
适用范围:
顶点间的边线较多,能够充分利用所开辟的空间。
时间复杂度:
n个顶点和e条边的网图创建,时间复杂度为O(n+n^2+e);
具体程序如下:
效果如下:
图的邻接矩阵:
其用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组存储图中的边或弧的信息。
适用范围:
顶点间的边线较多,能够充分利用所开辟的空间。
时间复杂度:
n个顶点和e条边的网图创建,时间复杂度为O(n+n^2+e);
具体程序如下:
// CreateGraph_AdjacencyMatrix.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "stdio.h" //#include "stdlib.h" #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXVEX 100 /* 最大顶点数,应由用户定义 */ #define INFINITY 65535 typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */ typedef char VertexType; /* 顶点类型应由用户定义 */ typedef int EdgeType; /* 边上的权值类型应由用户定义 */ typedef struct { VertexType vexs[MAXVEX]; /* 顶点表 */ EdgeType arc[MAXVEX][MAXVEX];/* 邻接矩阵,可看作边表 */ int numNodes, numEdges; /* 图中当前的顶点数和边数 */ }MGraph; /* 建立无向网图的邻接矩阵表示 */ void CreateMGraph(MGraph *G) { int i,j,k,w; printf("输入顶点数和边数:\n"); scanf("%d,%d",&G->numNodes,&G->numEdges); /* 输入顶点数和边数 */ printf("读入顶点信息,建立顶点表\n"); for(i = 0;i <G->numNodes;i++) /* 读入顶点信息,建立顶点表 */ scanf("%d",&G->vexs[i]); for(i = 0;i <G->numNodes;i++) for(j = 0;j <G->numNodes;j++) { if(i==j) G->arc[i][j]=0; else G->arc[i][j]=INFINITY; /* 邻接矩阵初始化 */ } for(k = 0;k <G->numEdges;k++) /* 读入numEdges条边,建立邻接矩阵 */ { printf("输入边(vi,vj)上的下标i,下标j和权w:\n"); scanf("%d,%d,%d",&i,&j,&w); /* 输入边(vi,vj)上的权w */ G->arc[i][j]=w; G->arc[j][i]= G->arc[i][j]; /* 因为是无向图,矩阵对称 */ } } int main(void) { MGraph G; CreateMGraph(&G); return 0; }
效果如下:
相关文章推荐
- 【第十一周】数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 【数据结构】以邻接矩阵作存储结构,求连通分量的个数,设计算法求图G的深度,深度优先序列输出
- 图的存储结构(邻接矩阵)- 数据结构和算法56
- 图的存储结构(邻接矩阵)- 数据结构和算法56
- 第12周 项目1—数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 2015-12-7 项目1—数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构-树的存储结构
- 7-3-有向图的十字链表存储结构-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
- 图的理解:存储结构与邻接矩阵的Java实现
- 数据结构逻辑结构与存储结构
- 【数据结构】图的存储方式:邻接矩阵和邻接表
- [数据结构]程杰队列的链式存储结构及实现代码
- 09-数据结构_线性结构-离散存储-链表_插删伪算法
- 图的存储结构(邻接矩阵)
- 算法与数据结构基础9:C++实现有向图——邻接矩阵存储
- 图(网)的存储结构(数组存储表示即邻接矩阵、邻接表)
- 图的存储结构——邻接矩阵(算法简介/c++实现)
- 【数据结构】图的存储方式:邻接矩阵和邻接表
- 数据结构---->图的存储结构
- 数据结构---图的存储结构