描述图的表示除了邻接矩阵表示,还可以使用链表数组。对每个顶点(表头节点)建立一个单链表,第i个单链表中节点表示依附于顶点vi 的边(对有向图而言,是以顶点vi为尾的弧)。所以在邻接表中,除了节点外,还有表头节点。两种方法比较假设图有V个顶点,E条边。空间权衡方面,邻接矩阵使用的空间正比于V^2;而邻接表所使用的空间正比于V+E。如果边数较少(也叫稀疏图),则优先选用邻接表。若大多数顶点对都由边相接(...
分类:
其他好文 时间:
2015-04-17 11:44:43
阅读次数:
186
描述图的邻接矩阵(Adjacency Matrix)表示是采用二维数组的方式。通过邻接矩阵可以立刻看出两顶点之间是否存在一条边,只需要检查邻接矩阵重行i和列j是否是非零值。对于无向图,邻接矩阵是对称的。下图是摘自《算法:C语言实现》
代码实现#include
using namespace std;
const int VERTEX_NUM = 20; // 顶点的最...
分类:
其他好文 时间:
2015-04-15 17:15:47
阅读次数:
160
图G=(V, E)是由若干给定的顶点V及连接两顶点的边E所构成的图形,图论起源于柯尼斯堡七桥问题。1、图的表示邻接矩阵:表示简单,但是对于稀疏矩阵,浪费空间严重。邻居表:相对于邻接矩阵,存储复制,稀疏矩阵情况下空间利用率高。以下用邻接表来存储图结构: 1 struct graph 2 { 3 ...
分类:
编程语言 时间:
2015-04-09 23:36:19
阅读次数:
205
1.图的表示a.邻接矩阵:适合稠密图(|E|接近|V|2)//用二维数组表示邻接矩阵int G[|V|][|V|];//初始化for(int i=0;i Adj;//所有顶点};//初始化void AddEdge(Graph &G,int i,int j,int weight,int w[][|V|...
分类:
其他好文 时间:
2015-04-05 20:08:54
阅读次数:
173
表示图的一种简单方法是使用二维数组,称为邻接矩阵表示法。对于每条边(u,v),置A[u][v] = true。否则数组的项就是false。如果边有一个权,那么可以置A[u][v]等于该权,而使用一个很大或者很小的权作为标记表示不存在的边。这种表示方法的空间需求是O(|V^2|)(一般来说空间比时间重...
分类:
其他好文 时间:
2014-12-15 10:19:22
阅读次数:
160
图的表示:连接矩阵,连接链表。图的遍历:dfs(递归、非递归),bfs.连接矩阵下各种遍历:import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;impo...
分类:
其他好文 时间:
2014-09-11 17:03:02
阅读次数:
289
最短路算法主要有以下几个: 一 Dijkstra 二 Bellman-Ford 三 SPFA
四 ASP 五 Floyd-Warshall 首先约定一下图的表示: struct Edge{ int from,to,wt; }; vectorG[N];
vectorG[N]; ------------...
分类:
其他好文 时间:
2014-05-20 01:25:04
阅读次数:
350
1 /* 2
题意:给出一个边长为S的六边形,再给出n种边长不同的三角形,所有的长度均为整型,问这n种三角形是否 3 能够拼成这个六边形。 4 5 题解:DFS+剪枝 6
这题的关键是图的表示方法以及剪枝,图我用了一个二维数组直接表示: 7 11111111111111111111...
分类:
其他好文 时间:
2014-05-08 19:59:26
阅读次数:
382