热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++实现邻接表数据结构详解

本文详细介绍了如何使用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;
}

参考大佬代码写的模板


推荐阅读
author-avatar
雷丶冷凝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有