作者:雷丶冷凝 | 来源:互联网 | 2024-10-27 14:49
本文详细介绍了如何使用C++实现邻接表数据结构。邻接表是一种用于表示图的数据结构,特别适用于稀疏图的存储。通过定义最大顶点数和顶点类型,本文展示了如何利用标准模板库(STL)中的容器来构建和操作邻接表,从而高效地管理和查询图中的节点及其连接关系。此外,还提供了具体的代码示例,帮助读者更好地理解和应用这一数据结构。
#include
using namespace std;
#define MAXNODE 100
typedef char VertexType;
typedef int EdgeTypd;
typedef struct EdgeNOde
{int node_index;EdgeTypd weight;struct EdgeNOde* next;
}EdgeNOde;
typedef struct VertexNode
{VertexType data;EdgeNOde *firstedge;
}VertexNode,MyList[MAXNODE];
typedef struct
{MyList mylist;int num_Edge,num_Node;
}GraphList;
void CreateGraph(GraphList &G)
{EdgeNOde *pe;cin>>G.num_Node>>G.num_Edge;for(int i&#61;0;i<G.num_Node;i&#43;&#43;){cin>>G.mylist[i].data;G.mylist[i].firstedge&#61;NULL;}int vi,vj;for(int j&#61;0;j<G.num_Edge;j&#43;&#43;){cin>>vi>>vj;pe&#61;(EdgeNOde*)malloc(sizeof(EdgeNOde));pe->node_index&#61;j;pe->next&#61;G.mylist[vi].firstedge;G.mylist[vi].firstedge&#61;pe;pe&#61;(EdgeNOde*)malloc(sizeof(EdgeNOde));pe->node_index&#61;vi;pe->next&#61;G.mylist[vj].firstedge;G.mylist[vj].firstedge&#61;pe;}
}
int main()
{GraphList G;CreateGraph(G);return 0;
}
参考大佬代码写的模板