当前位置: 首页 > news >正文

素材网网站建设seo培训课程

素材网网站建设,seo培训课程,wordpress博客,海曙区建设局网站链式前向新:用于存储图的 边集 数组 前言 当我们存储图的时候,往往会使用 邻接矩阵 或是 邻接表。 邻接矩阵 好写,但太浪费空间,节点一多就存不下; 邻接表 效率高,但涉及指 ,不好写容易出错…

链式前向新:用于存储图的 边集 数组

前言

当我们存储图的时候,往往会使用 邻接矩阵 或是 邻接表。

邻接矩阵 好写,但太浪费空间,节点一多就存不下;

邻接表 效率高,但涉及指 ,不好写容易出错;用 vector 又可能超时。

链式前向星 就是一个相对中庸的存储方式,虽然说,链式前向星 使用并不广泛,但在需要使用复杂 邻接表 时,这就是一个较好的选择。

链式前向星 其实就是 静态建立的邻接表,时间复杂度为O(m),空间复杂度也为O(m)。


思想

对于下图:

图1

 输入为:

5 7

1 2 3

2 3 1

1 3 4

1 5 3

4 1 5

4 5 1

3 4 2

我们将起点都是 from  的边串在一起,用 head[from] 存储头节点(见图2,下图为最终形式)

 图2

具体插入操作与链表相似 (见图3)

图3


代码与运行结果

里有注释,慢慢理解

#include <iostream>
#include <cstring>using namespace std;const int N = 2e2 + 5, M = 1e3 + 5;int n, m, cnt; //n个点,m条边
struct Edge {int to, value, next;//终点,边权,同起点的上一条边的编号
} edge[M]; //边集
int head[N]; //head[i] 表示以 i 为起点的第一条边在边集数组的位置(编号)void add_edge(int from, int to, int value) { //u起点,v终点,w边权edge[++ cnt] = {to, value, head[from]}, head[from] = cnt;// 赋终点权值 并且将新的节点赋在头上	更新头
}int main() {cin >> n >> m;/* 初始化 */cnt = 0;memset(head, -1, sizeof head);/* 加边 */for (int i = 1; i <= m; i ++) { //输入m条边int a, b, c;cin >> a >> b >> c;add_edge(a, b, c);}/* 遍历 */for (int i = 1; i <= n; i ++) {cout << ">" << i << "\n";bool hase = false;for (int j = head[i]; j != -1; j = edge[j].next) //遍历以i为起点的边cout << i << " " << edge[j].to << " " << edge[j].value << "\n", hase = true;if (!hase)cout << "nothing\n"; //第i个节点没有出去的边}return 0;
}
/*
5 7
1 2 3
2 3 1
1 3 4
1 5 3
4 1 5
4 5 1
3 4 2
*/

可以注意到 head 的初始值为 -1

这使得 head[i] 中第一个边的 next 为 -1,这正作为链的结尾(见图3

所以当 访问指针 ( j ) 为 -1 时,就代表访问结束了

运行结果参考

图4

(从 图2~4 和 代码中,我们都可以发现 链式前向星 是按输入倒着存的)


结语

个人觉得 链式前向星 和 邻接表 是几乎一样的,只不过 前者 是静态的,后者 是动态的

http://www.yidumall.com/news/109179.html

相关文章:

  • 网站网络营销方案网推app怎么推广
  • 哪些网站可以做翻译兼职行业关键词查询
  • 公司做网站怎么赚钱吗营销推广方式都有哪些
  • 怎么做内网网站站长之家域名查询
  • 长沙网站制作企业排名优化公司
  • 做推送的网站有哪些b站推广
  • 网站建设文档微博营销推广策划方案
  • wordpress搬家 500seo哪家好
  • 益阳有专做网站的吗2024会爆发什么病毒
  • 人人做免费网站抖音seo关键词优化排名
  • 网站建设国际深圳重庆整站seo
  • 团风做网站搭建网站的步骤和顺序
  • 厦门国外网站建设公司哪家好网站目录
  • 网站的回到顶部怎么做宁波网络推广方式
  • 怎么制作弹幕网站网站的推广方式
  • 云南网站建设公司排名郑州seo培训班
  • 网站上线有什么线上活动可以做百度网盘手机版
  • 网站实现功能在线之家
  • 免费用搭建网站沈阳seo排名收费
  • 怎么查网站icp备案宁波seo高级方法
  • 公司网站建设一定要求原图吗谷歌优化排名公司
  • 云服务器是否可以做多个网站厦门推广平台较好的
  • 什么公司做网站最好备案查询站长工具
  • 手机网站登陆模板游戏代理平台
  • 拓客系统seo代码优化有哪些方法
  • 集团网站建设服务公司seo网站推广软件 快排
  • 有没有做外贸的网站啊关键词挖掘站长工具
  • 网校网站模板数据分析一般用什么软件
  • 网上超市商城杭州专业seo
  • 秦皇岛网站制作多少钱最新实时新闻