首页 > 其他分享 >链式前向星

链式前向星

时间:2023-02-02 23:44:06浏览次数:39  
标签:head int 复杂度 tot 邻接矩阵 链式 前向星

注意到邻接矩阵空间复杂度为 \(n^2\) ,查找边复杂化为 \(O(n)\),这在处理数据较大的时候是极其不利好的,我们需要考虑优化.

注意到实际上邻接矩阵存在许多空间的浪费,因为他把所有的边的关系都存入了数组,不过是否相连.如果我们只记录边和边的关系,这样不但 空间是 \(m\),且时间复杂度近似 \(O(1)\) .

想一想,有没有什么数据结构是可以存边的,且不限长度的?你或许会说 \(vector\),这的确是个方法,但是如果不开 \(O2\) 的话,会非常的慢.不妨考虑链表.我们对每一条边都表个号(我无法保证我会连续读入同一点的边),用 \(head_{tot}\) 表示连的下一条边的编号即可,我们知道的编号,就还可以维护其他信息,比如长度这种.

代码如下:

	inline void AddEdge(int u,int v,int w1=0){
    	to[++tot]=v;
      	nxt[tot]=head[u];
      	head[u]=tot;
  	
    }

标签:head,int,复杂度,tot,邻接矩阵,链式,前向星
From: https://www.cnblogs.com/zhong114514/p/17087755.html

相关文章

  • php类自动装载、链式操作、魔术方法
    1、自动装载实例目录下有3个文件:index.phpload.phptests文件夹tests文件夹里有test1.php<?phpnamespaceTests;classTest1{staticfunctiontest(){......
  • 链式编程
    目录一、什么是链式编程二、链式编程的实现(指针)三、链式编程(引用)一、什么是链式编程链式编程在C++中使用的地方很多,比如说输出的时候可以使用很多的<<,这就使用了链式编程......
  • 链式法则和分部积分法
    链式法则(chainrule)用于求导,公式有两种写法:写法1:写法2:  示例:对y=(2x-5)3求导。把2x-5当成u(即u=2x-5),求F'(x)=f'(u)*u'(x)分别对f(u)和u(x)两个函数求导:(u3)'=3u2,(2......
  • 2023.1.10链式访问
    ......
  • 代码随想录day14 LeetCode 144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中
    144.二叉树的前序遍历classSolution{public:vector<int>v;vector<int>preorderTraversal(TreeNode*root){if(root==NULL)returnv;......
  • C++实现链式表示多项式加法运算
    #include<iostream>#include<cstdlib>usingnamespacestd;#defineMAXSIZE100#defineOK1#defineERROR0typedefintElemtype;typedefintStatus;typedefstructPNo......
  • netcore添加skywalking链式追踪
    简介  在分布式系统当中,想要监控服务与服务之间调用耗时,或者是查问题的时候,不能像向单机那种形式去查询.查找了一段时间发现目前市场上用的是skywalking,由华为大佬......
  • 线性表之链式存储
    目录初始化一个空线性表空链式表的抽象表达查找按序号按值在位序i前插入一个新元素X删除指定位序i的元素返回线性表L的长度n吐槽初始化一个空线性表空链式表的抽象表达/......
  • 算法之链式前向星存图
    蒟蒻们往这里看!链式前向星存图的讲解先上代码://MAXN指的是最大边数//MAXM指的是最大节点数intcnt;inthead[MAXM];//head[n]指的是第n个节点存储的最后一条边地址......
  • C++数据结构03--静态链式线性表的实现
    头文件://静态链表头文件#include"stdafx.h"usingnamespacestd;#defineMAXSIZE250typedefintElemType;typedefstruct{ElemTypedata;intcur;//存在next的指针......