zoukankan      html  css  js  c++  java
  • 图的表示

    图的表示方法有邻接表和邻接矩阵。

    邻接矩阵,实现方法是二维数组;

    邻接表,实现方法是链表。

    下面主要写出邻接表的代码实现方法:

    边的定义:

    struct Edges{
        int v;
        Edges *next;
    }*head[N], edge[M];
    

    头指针的初始化:

    memset( head, 0, sizeof(head));
    cnt = 1; //边的标号

    加边函数:

    void add ( int u, int v )
    {
      edge[cnt].v = v; edge[cnt].next = head[u]; head[u] = &edge[cnt++];    //这里要注意给head[u]赋值的时候,edge那个结点前要加地址符&,head数组的类型是指针变量
    }

    for循环搜索一个点所连接的其他的点,或者搜索一个点的关联边:

    for ( Edges *i = head[u]; i; i = i->next )
        {
            int v = i->v;        //这里要说明的是i就是这个要遍历的结点
    

      

    追求卓越,成功就会不期而至……
  • 相关阅读:
    hw4 打卡
    lab4打卡
    hw3打卡
    lab3打卡
    hw2打卡
    lab2打卡
    hw1打卡
    Java Trie(词典树)实现
    Java HashMap实现
    DFS习题复习(2) DFS的实际应用:括号检测,graph Bipartite及随机生成迷宫
  • 原文地址:https://www.cnblogs.com/Aclion/p/3667370.html
Copyright © 2011-2022 走看看