【数据结构】邻接表的3种常用表示方式——C++描述
发布时间:2020-12-15 06:00:12 所属栏目:安全 来源:网络整理
导读:指针表示法 struct ArcNode //定义边表结点 { int adjvex; //邻接点域 ArcNode* next;}; struct VertexNode //定义顶点表结点 { int vertex; ArcNode* firstedge;}; //头插法 void add( int from , int to){ s = new ArcNode; s-adjvex = to; s-next = adjl
指针表示法struct ArcNode //定义边表结点
{
int adjvex; //邻接点域
ArcNode* next;
};
struct VertexNode //定义顶点表结点
{
int vertex;
ArcNode* firstedge;
};
//头插法
void add(int from,int to)
{
s = new ArcNode;
s->adjvex = to;
s->next = adjlist[i].firstedge;
adjlist[from].firstedge = s;
}
vector表示法vector<int> v[MAXN];
void add(int x,int y)
{
v[x].push_back(y);
}
数组表示法int head[MAXN]; //初始化为-1
int h = 0;
struct Edge
{
int to;
int next;
};
Edge e[MAXN<<1];
void add(int x,int y)
{
e[h].to = y;
e[h].next = head[x];
head[x] = h++;
}
三种方法的简单比较
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |