【数据结构】十字链表的画法

十字链表的基本概念

  • 有向边又称为弧

  • 假设顶点 v 指向 w,那么 w 称为弧头,v 称为弧尾

  • 顶点节点采用顺序存储

  • 顶点节点

    • data:存放顶点的信息
    • firstin:指向以该节点为终点(弧头)的弧节点
    • firstout:指向以该节点为起点(弧尾)的弧节点
  • 弧节点

    • tailvex:起点(弧尾)在数组中的索引
    • headvex:终点(弧头)在数组中的索引
    • hlink:终点(弧头)相同的下一个弧节点
    • tlink:起点(弧尾)相同的下一个弧节点
    • info:存放边(弧)有关的信息

画法

示例

第 1 步

  • 先画顶点节点,并在右侧标出顶点对应的索引
  • 右侧的这些索引就叫它第 i 列吧, i ∈ 0 , 3 i \in 0, 3 i∈0,3

第 2 步

  • 遍历每个顶点,找到该顶点指向的其他顶点 i,从左到右画弧节点,弧节点的位置对应第 i 列,每一行最右侧弧节点的 tlink 置为空
  • 如果索引为 i 的顶点节点没有出度,那么 firstout 置为空

第 3 步

  • 索引为 i 的顶点节点的 firstin 指向第 i 列的第一个节点(从上到下的第一个弧节点)
  • 如果第 i 列一个节点也没有,那么 firstin 置为空

第 4 步

  • 遍历每一列,将 hlink 按列从上到下进行连接
  • 每一列最后一个弧节点的 hlink 置为空(从上到下,最上面的是第一个,最下面的是最后一个)
相关推荐
wo_jack5 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
zaizai10077 小时前
算法(左程云)1
数据结构
charliejohn8 小时前
计算机考研 408 数据结构 图论-关键路径
数据结构·图论
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
vvilkim1 天前
数据结构类型、区别与应用场景:一篇讲透选型逻辑
数据结构
阿卡好可爱1 天前
Lua 热更新不生效:改完文件线上仍是旧逻辑,package.loaded 与 upvalue 重绑定详解
数据结构·分布式·后端·架构·lua
心仪久了会沦陷2 天前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
码少女2 天前
数据结构——图的基础
数据结构
Severus_black2 天前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list