zoukankan      html  css  js  c++  java
  • 链式前向星

    推荐博客 : http://blog.csdn.net/ZHangFFYY/article/details/77871897

    我们对一个图的存储基本有两种,邻近矩阵和邻接表 ,在补充一个链式前向星

    用此方法存图 , 首先先定义一个结构体数组

    struct node

    {  

      int to, w; // to 表示当前点所指向的下一个点

      int next; // next 表示的是当前点所连得下一个点(或者可以说是前一个点)

    };

    除此之外,还有一个数组 head[ ], 表示以 i 为起始点的第一条边所在的是结构体中的哪个点,(其实就是最后输入的那个边号)通常我们上来将其初始化为 -1

    加边的函数这样写 :

    void add(int u, int v, int w){
        edge[cnt].to = v;
        edge[cnt].w = w;
        edge[next] = head[u];
        head[u] = cnt++;
    }
    

    初始化cnt = 0,这样,现在我们还是按照上面的图和输入来模拟一下:


    edge[0].to = 2;     edge[0].next = -1;      head[1] = 0;

    edge[1].to = 3;     edge[1].next = -1;      head[2] = 1;

    edge[2].to = 4;     edge[2],next = -1;      head[3] = 2;

    edge[3].to = 3;     edge[3].next = 0;       head[1] = 3;

    edge[4].to = 1;     edge[4].next = -1;      head[4] = 4;

    edge[5].to = 5;     edge[5].next = 3;       head[1] = 5;

    edge[6].to = 5;     edge[6].next = 4;       head[4] = 6;


    很明显,head[i]保存的是以i为起点的所有边中编号最大的那个,而把这个当作顶点i的第一条起始边的位置.

    东北日出西边雨 道是无情却有情
  • 相关阅读:
    docker删除容器再删除镜像
    centOS7安装docker遇到 [Errno 14] curl#35
    设置centos7界面语言为中文
    sublime查看项目代码多少行
    1. 常用及特殊
    7.逆波兰,二叉树三叉树
    6.表单提交,input键盘变搜索,有关自定义属性input操作
    5.字符串的第一次见到的方法
    2.手机上浏览器看控制台的插件
    1. 时间插件
  • 原文地址:https://www.cnblogs.com/ccut-ry/p/8472153.html
Copyright © 2011-2022 走看看