• 链式前向星-图的存储


    上午开了图论的基础知识,下周一(据说)真哥将对链式前向星作深入讲解,因此今天根据上午的介绍,稍作预习整理。

    所谓前向星,指的是一种特殊数组,用以存储各节点的连边信息。大致原理是在(vector可能舒服些)数组中加入各边的起点、终点和长度三个信息,最终进行一次sort,令起点编号较小的靠前,同起点的边按终点由小到大排序。前向星数组的结构很容易理解,但由于时间复杂度高(排序)、维护繁琐(要额外开数组存各节点的度、首边位置等信息),我们找到了链式前向星来弥补它的缺点。

    (结构示意就不贴了,毕竟真哥课件里有(咕咕咕))

    链式前向星存图的特点,可以概括为“以边指边”。具体来说,对于每个节点,在只存其出边的前提下,只保留最后读入的那一条出边的信息。

    而其余的边怎么办呢?我们令新加入的这个边在终点v、权值w之外,再存一个变量nxt,表示它这一点的上一条边在edge数组中的位置。这一信息在原先的head[u]中存储。之后,令head[u]更新为这一边的下标。这样我们就实现了在原先在的某一点中存入一条新边,并保留其它边的信息。

    遍历时,我们只要从head[u]所指的这一边出发,以edge[i].nxt作为i的下一个值,直到i为0(最初head[u]的空值被赋给了这一条最初的边)为止。

    下面贴上简化后的存边和遍历代码,进一步学习其它用(操)法(作)后再更新。注意由于按边的起点存储,对于无向图,我们需要存入两条边,当然要开两倍的空间。

  • 相关阅读:
    图片上传功能(html+js)
    Dom元素基本操作方法API(转载)非原创
    使用jquery mobile笔记(更新中)
    基于ASP.NET AJAX的WebPart开发与部署
    Workbooks 对象的 Open 方法参数说明
    使用properties和SPContext时须小心
    转载 C# 与 C++ 数据类型对照
    ASP.NET实现进度条
    为sharepoint的内部页面添加后台代码
    操作Word Application.Documents.Open方法参数说明
  • 原文地址:https://www.cnblogs.com/TY02/p/10614483.html
Copyright © 2020-2023  润新知