十字链表画法——蓝墨云班课实践改错

十字链表画法——蓝墨云班课实践改错

课堂题目

分析课堂的错误做业

对十字链表的纵轴理解的不是很清晰,当时画的不完整。数组

课后的解决

  • 十字链表是为了便于求得图中顶点的度(出度和入度)而提出来的。它是综合邻接表和逆邻接表形式的一种链式存储结构。
  • 在十字链表存储结构中,有向图中的顶点的结构以下所示:
  • 其中data表示顶点的具体数据信息,而firstIn则表示指向以该顶点为弧头的第一个弧节点。而firstOut则表示指向以该顶点为弧尾的第一个弧节点。为了表示有向图中全部的顶点,采用一个顶点数组存储每个结点,以下图所示:
  • 另外,在十字链表存储结构中,有向图中的每一条弧都有一个弧结点与之对应,具体的弧结点结构以下所示:
  • 其中的tailVex表示该弧的弧尾顶点在顶点数组xList中的位置,headVex表示该弧的弧头顶点在顶点数组中的位置。hLink则表示指向弧头相同的下一条弧,tLink则表示指向弧尾相同的下一条弧。
  • 从十字链表的数据结构来看,每个顶点对应两个链表:以该顶点为弧尾的弧结点所组成的链表以及以该顶点为弧头的弧结点所组成的链表。
  • 上述介绍来源于博客数据结构

    具体的画法步骤

    1.首先,根据题目,画出全部的顶点集并排成一列 。每个顶点分为三个小格,第一个小格按顺序填上顶点名称,第二个小格判断该顶点是否有入度,第三个小格判断该顶点是否有出度;若是是,就画一个点;反之画一个“^”符号。
    以下图所示:
    .net

2.而后画出边集并将其链接起来,来构建十字链表的横轴。链接的要点是:从顶点的第三个小格表示出的方向开始,指向由4个小格构成的边集;边集包括4个小格,第一个小格表明起点、第二个小格表明终点、第三个小格是来判断是否有某些顶点的入边、第四个小格判断是否还存在从同一顶点出发的边。
3d

3.其次就是十字链表纵轴的画法了。咱们须要回到顶点集的第二个格子,首先去判断其是否有入的边,即若该顶点的第二个格子中是点“·”的话,该顶点就有纵轴;从有向图中寻找该顶点的入度,对应到边集里面,用箭头链接上,十字链表就算是画完了。
blog

相关文章
相关标签/搜索