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

图论·图的存储

图论的存储

  • 邻接表
  • 邻接矩阵(一般不用)

邻接表

结构体数组实现

  • 缺点:如果使用结构体的话,node结构体初始化很慢。
// common onevector<list<int>>g;// another typetypedefstructnode{intval;intdist;// 如果需要节点到某点的距离的话}vector<list<node>>g;
  • 插入操作
q.push_back(item)

链表前向星

  • 邻接表定义:
  • h代表链表头指针,指向v,nxt数组中的每一个节点
  • v代表某一个边终点节点的具体值,nxt代表指向的边。注意这两个数组其实都是代表边,可能会出现1->3,2->3,3号节点对应v和nxt中不同的位置的情况!
  • v和nxt的大小等于边数
  • len代表总共有多少边。
inth[100009],v[100009],nxt[100009],len=0;
  • 插入操作
voidinsert(intx,inty){len++;v[len]=y;nxt[len]=h[x];h[x]=len;d[y]++;}
  • 容易出错的操作:搜索时我们假定得到的是节点编号,但是我们nxt和h指向的是该节点的实际存储位置。
for(inti=h[cur];i!=-1;i=nxt[i]){intnode=v[i];d[node]--;if(!d[node]){q.push(node);}}
http://www.jsqmd.com/news/500175/

相关文章:

  • 2026年热门的废水低温蒸发器厂家推荐:苏州低温蒸发器实力品牌厂家推荐 - 行业平台推荐
  • UE5VSC++开发 一 环境准备
  • 磁性元件企业要的优秀电源采购商什么样?
  • GPUPixel项目分析
  • 系统集成项目管理(中项随笔-1.1.3信息化内涵)
  • Java集合——List
  • LiteLLM + vLLM模型调用引擎架构
  • Android 通过Http实现一个网络速率检测工具
  • python http请求报错SSL
  • 虚拟内存的运作
  • 手机聊天记录等数据恢复探讨
  • Ansys Zemax | 在OpticStudio中模拟高阶激光光束
  • 人工智能三级好考吗?考试难度解析
  • 知识付费开发到底难不难?小白也能看懂的搭建流程
  • 2026年国产算力产业指南:自主软硬件+开源生态,产业链核心标的梳理
  • 多卡聚合通信在无人快递车中的应用价值
  • Redacted介绍(脱敏 / 涂黑 / 删改后公开,指对外展示或记录信息时,把敏感内容隐藏或替换,只保留必要信息用于排查问题、审计或协作沟通)敏感信息、马赛克
  • AI创富实战手册:从0到1的五大落地路径
  • H3CNE--12.生成树协议
  • 动态规划_最长湍流子数组_C++
  • 向量数据库选型
  • 随着OpenClaw被广泛应用,是否会涌现出大量利用其自动化能力进行网络攻击的法律灰色地带案件?
  • OpenClaw 是放大器,不是发动机——AI Agent 天花板之前的那个乘数
  • 技术干货版|HLS 流媒体调试必备:m3u8live.cn 在线 M3U8 播放器,免安装一键验流
  • 前端开发中的常用工具函数(四)
  • 网页版学习通后台自动刷课(可跳过练习版本)【edge】
  • 在Windows下配置针对WSL的cc-switch
  • 牛津大学发明“噪音魔法师“:一步生成高质量图像的全新AI技术
  • 【超全】基于微信小程序的电影院选座系统【包括源码+文档+调试】
  • java-继承