zoukankan      html  css  js  c++  java
  • 图论——链式前向星的加边和删边操作

    点击展开代码块
    #include <bits/stdc++.h>
    
    #define mkp make_pair
    #define pb push_back
    #define all(x) x.bg,x.ed
    #define newline puts("")
    #define rep(i,n) for(int i=1;i<=n;++i)
    #define rrep(i,n) for(int i=0;i<n;++i)
    
    using namespace std;
    typedef long long ll;
    typedef pair<ll,ll> pii;
    const int maxn = 1e5+10;
    const int inf = 0x7f7f7f7f;
    const int Mod = 1e9+7;
    const double eps = 1e-7;
    int head[maxn],cnt=0;
    struct edge{
        int u,v,pre,next;
    }e[maxn<<1];
    //加边
    void add(int u,int v){
        e[++cnt].v=v;e[cnt].u=u;e[head[u]].pre=cnt;
        e[cnt].next=head[u];head[u]=cnt;
    }
    //删边
    void del(int id){//边的编号
        if(e[id].pre){
            e[e[id].pre].next=e[id].next;//类似于链表的删点
            e[e[id].next].pre=e[id].pre;
        }
        else{
            head[e[id].u]=e[id].next;
            e[e[id].next].pre=0;
        }
    }
    int n,m;
    struct node{
        int x,y;
    }p[10010];
    
    int main(){
        cnt=0;
        cin>>n>>m;
        
        for (int i=0;i<m;i++){
            int u,v;
            scanf("%d%d",&u,&v);
            add(u,v);
        }
        cout<<"cnt = "<<cnt<<endl;
        for (int u=1;u<=n;u++){
            printf("%d->",u);
            for (int i=head[u];i;i=e[i].next){
                printf("%d ",e[i].v);
            }
            newline;
        }
        del(3);//cnt边的数量不会变化,链式前向星变化,删除第三条边
        // del(1);
        // del(2);
        newline;
        cout<<"cnt = "<<cnt<<endl;
        for (int u=1;u<=n;u++){
            printf("%d->",u);
            for (int i=head[u];i;i=e[i].next){
                printf("%d ",e[i].v);
            }
            newline;
        }
        return 0;
    }
    
    你将不再是道具,而是成为人如其名的人
  • 相关阅读:
    小白的Python之路_day1
    Vue---tab切换时不刷新
    Vue---第十五章使用VScode编写第一个脚本
    Vue---第十四章visual studio code使用
    Vue---第十三章基础运算和v-model
    Vue---第十二章批量下载模块
    vue---第十一章全局依赖环境区分
    Vue---第十章全局变量
    Vue---第九章NPM
    hadoop-Rpc使用实例
  • 原文地址:https://www.cnblogs.com/wsl-lld/p/13651165.html
Copyright © 2011-2022 走看看