邻接表的使用及和vector的比较
来源:互联网 发布:淘宝捉猫猫 大师魔盒 编辑:程序博客网 时间:2024/05/18 04:00
这几天碰到一些对建边要求挺高的题目。而vector不好建边,所以学习了邻接表。。
下面是我对邻接表的一些看法。
邻接表的储存方式
邻接表就是就是每个节点的一个链表,并且是头插法建的链表,这里我们首先用数组进行模拟。。first [u],next[e]分别表示节点u的第一条边的编号,第e条边的下一条边的编号。。则实现代码为:
next[e]=head[u[e]];head[u[e]]=e;
然后如果和结构体进行搭配使用会非常使用。。
struct Edge{ int to,val,next;}edge[maxn];int head[maxn];void addedge(int x,int y,int val){ edge[++cnt].to=y; edge[cnt].val=val; edge[cnt].next=head[x]; head[x]=cnt;}而相应的邻接表的遍历方式也就出来了
for(int i=head[x],i!=-1;i=next[i])第二种遍历方式为:
for(int i=head[x],i!=-1;i=edge[i].next)而vector也可以达到与邻接表相同的效果,vector容器实则是一个动态数组,但是与邻接表不同的是,它是顺序存储的.那么存储和遍历都很简单
遍历for(int i=0;i<vec[x].size();i++)表示形式就是跟数组一模一样。。
自己的一些理解,请指正。。。
3 0
- 邻接表的使用及和vector的比较
- 使用vector构造带权图的邻接表
- vector 邻接表的建立
- ACdream之使用vector和queue进行邻接表的广搜
- 不用vector的邻接表的写法
- 邻接表的vector表示方法
- 图的邻接矩阵和邻接表的比较
- 图的邻接矩阵和邻接表的比较
- 图的邻接矩阵和邻接表的比较
- 图的邻接矩阵和邻接表的比较
- 一个我认为比较好的Spfa模板(使用邻接表和队列实现)
- vector和list的使用及区别
- ArrayList和Vector的比较
- ArrayList和Vector的比较
- Vector和ArrayList的比较
- Vector和ArrayList的比较
- QVector 和vector的比较
- Vector和ArrayList的比较
- portaudio Pa_ReadStream and Pa_WriteStream的使用
- centos下配置jdk
- makefile常用讲解(3)
- JDBC操作数据库(同步:备份,修改,删除)笔记
- 网络空间图片上传curl
- 邻接表的使用及和vector的比较
- MyEclipse8.6注册码生成代码
- 我的String启发小程序
- makefile常用讲解(2)
- 'D:\android\ANDROI~1\tools\lib\\find_java.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- MySQL: InnoDB 还是 MyISAM?
- Socket心跳包机制
- android字体阴影
- 生成C#安装程序