本文出自:Svitter的Blog 以及 Github
8/8/2014 9:23:16 AM
顶点Vertex
V = {x | x ∈ 某个数据对象}
边的集合Edge
E = {(x, y) | x,y ∈ V }
E = {(x, y) | x, y ∈ V && path(x,y)
Path(x, y)表示从x到y的一条单向通路——说明什么?<!--(有方向)-->
在有向图中,顶点对是有序的。
在无向图中,顶点对( x, y )是无序的。
图的基本知识就到这里了,如果有必要可以继续往下看。
无向图是欧拉图当且仅当G是连通图且没有奇度顶点
相关文献:哥尼斯堡七桥问题
平凡图属于哈密顿图。
树也是图。树是什么样的图?顶点为n,边数为n-1的图
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
//If G is a tree
//half of n is enough;
#define MAXN 1000
// N 为节点个数
typedef vector <int> vint;
vector <vint> G(MAXN);
//遍历使用clear()函数, 清空使用的空间
void Insert(int a, int i)
{
G[a].push_back(i);
}
void DFS(int v)
{
for(int i = 0; i < G[v].size(); i++)
DFS(G[v][i]);
}
int main()
{
G.clear();
return 0;
}
struct Arc
{
int next_arc;
int point;
};
#define MAXN 1000
#define MAXE 1000
int node[MAXN];
Arc arc[E];
// 以u开始,以v结束
int EdgeCount = 0;;
void AddEdge(int u, int v)
{
arc[EdgeCount].next_arc = node[u];
arc[EdgeCount].point = v;
node[u] = EdgeCount;
EdgeCount++;
}
原文地址:http://blog.csdn.net/svitter/article/details/38439839