深圳市多语言网站建设公司,台州网站制作系统分析怎么写,办公室装修设计效果图免费,wordpress主题模块添加图片尺寸图的邻接表实现 邻接表是图的一种链式存储结构。主要是应对于邻接矩阵在顶点多边少的时候#xff0c;浪费空间的问题。它的方法就是声明两个结构。如下图所示#xff1a; 先来看看伪代码#xff1a; typedef char Vertextype; //表结点结构 struct ArcNode { int adjvex; … 图的邻接表实现 邻接表是图的一种链式存储结构。主要是应对于邻接矩阵在顶点多边少的时候浪费空间的问题。它的方法就是声明两个结构。如下图所示 先来看看伪代码 typedef char Vertextype; //表结点结构 struct ArcNode { int adjvex; //某条边指向的那个顶点的位置一般是数组的下标。 ArcNode * nextarc; //指向下一个表结点 int weight; //这个只有网图才需要使用。普通的图可以直接忽略 }; //头结点 struct Vnode { Vertextype data; //这个是记录每个顶点的信息现在一般都不需要怎么使用 ArcNode * firstarc; //指向第一条依附在该顶点边的信息表结点 }; 1、无向图 该无向图中表节点下的数字1、2、3、0对应的是头结点的下标用此表示每个头结点与其他的哪些节点相连 2、有向图 该有向图中表节点下的数字1、2、3对应的是头结点的下标用此表示每个头结点与其他的哪些节点具有指向关系 有向图的邻接表代码实现 #includecstdio
#includeiostream
#includecstring
#includevector
using namespace std;
const int max_v100;int main()
{int v,e;int V[max_v];cinve;///输入顶点和边的个数for(int i0;iv;i){cinV[i];///输入顶点的值}int x,y;vectorint G[max_v]; //vector的用法https://blog.csdn.net/hancunai0017/article/details/7032383 for(int i0;ie;i){cinxy;G[x].push_back(y);///节点x的下一个节点是y}for(int i0;iv;i){coutV[i]-;for(int j0;jG[V[i]].size();j)//此处的G[V[i]].size()的含义参考另一篇关于拓扑排序的博客{coutG[V[i]][j] ;}coutendl;}return 0;
} 输入5 60 1 2 3 40 11 32 13 03 24 3结果显示0-11-32-13-0 24-3转载于:https://www.cnblogs.com/LJHAHA/p/9960448.html