图——邻接表
来源:互联网 发布:c语言中百分之f 编辑:程序博客网 时间:2024/06/06 02:09
邻接表:邻接表是图的一种链式存储结构。对图的每个顶点建立一个单链表(n个顶点建立n个单链表),第i个单链表中的结点包含顶点Vi的所有邻接顶点。又称链接表。
“test.cpp”
#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;#include "GraphLink.h"void Test(){GraphLink<char,int> g("ABCDE",5,false);g.AddEdge('B','C',10);g.AddEdge('B','D',20);g.AddEdge('B','E',30);g.AddEdge('C','E',40);g.AddEdge('D','A',10);g.AddEdge('A','E',20);g.Display();}int main(){Test();system("pause");return 0;}
"GraphLink.h"
<strong><span style="font-size:18px;">#pragma once#include <vector>template<class V,class W>class GraphLinkEdge{public:GraphLinkEdge(size_t str,size_t dect,const W& w):_str(str),_dect(dect),_w(w),_next(NULL){}size_t _str;size_t _dect;W _w;GraphLinkEdge<V,W>* _next;};template<class V,class W>class GraphLink{public:GraphLink(const V* arr,size_t size,bool isDirection):_isDirection(isDirection){_vertexs.resize(size);_egdes.resize(size);for (int i = 0;i < size;i++){_vertexs[i] = arr[i];}}void AddEdge(const V& str,const V& dect,const W& w){size_t newstr = _GetIndex(str);size_t newdect = _GetIndex(dect);if (_isDirection){//有向图 添加一条边_AddEdge(newstr,newdect,w);} else{//无向图 添加两条边_AddEdge(newstr,newdect,w);_AddEdge(newdect,newstr,w);}}void Display(){for (int i = 0;i < _vertexs.size();i++){cout<<_vertexs[i]<<"["<<i<<"]->";GraphLinkEdge<V,W>* begin = _egdes[i];while (begin){cout<<begin->_w<<"["<<begin->_dect<<"]"<<"->";begin = begin->_next;}cout<<"NULL"<<endl;}cout<<endl;}private:size_t _GetIndex(const V& v){for (int i = 0;i < _vertexs.size();i++){if (_vertexs[i] == v){return i;}}return -1;}void _AddEdge(size_t str,size_t dect,const W& w){GraphLinkEdge<V,W>* tmp = new GraphLinkEdge<V,W>(str,dect,w);//这里选择了头插的方式tmp->_next = _egdes[str];_egdes[str] = tmp;}private:vector<V> _vertexs;//顶点集合vector<GraphLinkEdge<V,W>*> _egdes;//邻接表存储边bool _isDirection;};</span></strong>
0 0
- 图——邻接表
- 图——邻接表
- 邻接表—DFS
- 图的存储——邻接表
- 数据结构—图之邻接表
- 图的实现——正邻接表&逆邻接表
- 图——操作用邻接表存储的图
- 图——邻接表(深度遍历,广度遍历)
- 图的存储三部曲——其二:邻接表
- 图的存储形式——邻接表
- 图的存储结构——邻接表的建立
- 图的存储结构——邻接表
- 数据结构—图的存储—邻接表和邻接矩阵
- 数据结构(C++)——图(邻接表)
- 数据结构——图的存储 邻接表
- 图的存储结构——邻接表
- 图的遍历(下)——邻接表
- 图的存储结构——邻接链表
- As抽风:Could not identify launch activity: Default Activity not found Error while Launching activity
- Web 前端概述
- CCF 201509-4 高速公路
- 黑马程序员前端培训:高效的前端编程入门训练方法
- Struts2 自定义结果类型
- 图——邻接表
- mySQL进行多表的左外连接、右外连接、内连接、全外连接
- Linux下查看系统版本号信息的方法
- 圆上的随动点如何通过动态点值绘制
- ListView使用方法大总结
- android播放网络视频
- Android自定义带标题边框的Layout
- js实现文字从右滚动到左边代码循环滚动实例
- Sublime Java 环境配置-实现Java程序编译、运行