• 邻接表(两种实现形式)


    动态

    struct node
    {
        int u,v,w;
        node *next;
    }*first[N];//一个节点相连的所有节点 构成一条链
    void init()
    {
        memset(first,NULL,sizeof(first));
    }
    void add(int u,int v,int w)
    {
        node *p = new node;
        p->v = v;
        p->w = w;
        p->next = first[u];//类似于正序链表的插入
        first[u] = p;
    }
    for(node *p = first[u] ; p!=NULL ; p= p->next)
    {
        int v = p->v;
        ///
    }

    静态

    struct node
    {
        int v,w,next;
    }men[51*N];//每个节点最多与50个相连的话 这样就够了。。
    int first[N],t = 0;
    void init()
    {
        t = 0;
        memset(first,-1,sizeof(first));
    }
    void add(int u,int v,int w)
    {
        men[t].v = v;
        men[t].w = w;
        men[t].next = first[u];
        first[u] = t;//类似于链表的实现
        t++;
    }
    for(int i = first[u] ; i !=-1 ; i = men[i].next)
    {
        int v = men[i].v;
        ///处理
    }
  • 相关阅读:
    List sort()方法
    解析器
    beautifulsoup库
    break 语句
    enumerate函数
    POJ 1915 Knight Moves
    POJ 1745 Divisibility
    POJ 1731 Orders
    POJ 1664 放苹果
    POJ 1606 Jugs
  • 原文地址:https://www.cnblogs.com/shangyu/p/2619076.html
Copyright © 2020-2023  润新知