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

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

十字链表的基本概念

  • 有向边又称为弧

  • 假设顶点 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 置为空(从上到下,最上面的是第一个,最下面的是最后一个
    在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/150371.html

相关文章:

  • 使用rabbitmq进行支付之后的消息通知
  • 【100天精通python】Day47:python网络编程_Web开发:web服务器,前端基础以及静态服务器
  • Web框架Beego
  • Kubernetes(K8s)基本环境部署
  • antd5:form组件底层封装库field-form-1.37.0启动
  • 深度学习经典检测方法的概述
  • viewpager2导致的mViews下标越界问题
  • 无涯教程-JavaScript - NORMSDIST函数
  • Mysql查询(SELECT)
  • 基于JAVAEE技术的ssm校园车辆管理系统源码和论文
  • opencv-人脸识别
  • 九、idSpanMap使用基数树代替原本的unordered_map 十、使用基数树前后性能对比
  • 政府科技项目验收全流程分享
  • 基于Matlab实现生活中的图像信号分类(附上源码+数据集)
  • YOLOv5算法改进(12)— 替换主干网络之Swin Transformer
  • php 权限节点的位运算
  • ClickHouse进阶(六):副本与分片-2-Distributed引擎
  • Git和Github的基本用法
  • 279. 完全平方数
  • 一篇文章学会C#的正则表达式
  • 智慧工地源码 智慧大屏、手机APP、SaaS模式
  • C# WPF监听USB插入拨出
  • Prometheus监控(三)架构
  • linux kvm网桥br简单理解和持久化配置
  • 【LeetCode-中等题】105. 从前序与中序遍历序列构造二叉树
  • uniapp 配置网络请求并使用请求轮播图
  • c#在MVC Api(.net framework)当中使用Swagger,以及Demo下载
  • Linux 常见命令操作
  • 前端实习第七周周记
  • DevOps理念:开发与运维的融合