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

十字链表的基本概念

  • 有向边又称为弧

  • 假设顶点 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 置为空(从上到下,最上面的是第一个,最下面的是最后一个)
相关推荐
爱读书的小胖34 分钟前
LeetCode 27. 移除元素(C)解题分析
数据结构·算法
爱读书的小胖1 小时前
Codewars: A Brave New Wordle(C)解题分析
c语言·数据结构·算法
Escalating_xu1 小时前
【数据结构】顺序表的应用:动态通讯录项目与双指针经典算法
c语言·数据结构·算法
从小白到软工2 小时前
C语言(中)预告
c语言·数据结构·经验分享·ai编程
罗湖老棍子2 小时前
座位安排(洛谷-P2071)
c++·算法·图论·匈牙利算法·二分图匹配
垆边人似月.2 小时前
华为题:任务调度
数据结构·c++·算法
Logic1012 小时前
C语言/数据结构字符串题解:解压缩“字符+次数“格式——多位数字处理与字符串还原
c语言·数据结构·字符串·模拟·时间复杂度·空间复杂度·算法题
信奥卷王3 小时前
[GESP202506 六级] 最大因数(含视频)
数据结构·算法
局部有解3 小时前
Leetcode - 42 接雨水(一维)
数据结构·c++·算法·leetcode
专注API从业者3 小时前
告别手工盯盘:用 Open‑Claw 搭建电商商品自动化监控与数据分析实战
运维·数据结构·数据挖掘·数据分析·自动化