zoukankan      html  css  js  c++  java
  • 1075 链表元素分类

    #include<bits/stdc++.h>
    #include<vector>
    #include<map>
    using namespace std;
    struct node
    {
        int data;
        int next;
    }a[100005];
    vector<int>v[3];
    int main()
    {
        int start,n,k,temp;
        cin>>start>>n>>k;
        for(int i=0;i<n;i++)
        {
            //cin>>temp;
            //cin>>a[temp].data>>a[temp].next;
            scanf("%d",&temp);
            scanf("%d%d",&a[temp].data,&a[temp].next);
        }//放入地址 根据地址去找data 和 next 
        int x=start;
        while(x!=-1)
        {
            int data=a[x].data;
            if(data<0) v[0].push_back(x);
            else if(data>=0&&data<=k) v[1].push_back(x);
            else v[2].push_back(x);
            x=a[x].next;
        }
        bool p=0;
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<v[i].size();j++)
            {
                if(!p) 
                {
                    printf("%05d %d ",v[i][j],a[v[i][j]].data);
                    p=1;
                }
                else
                {
                    printf("%05d
    %05d %d ",v[i][j],v[i][j],a[v[i][j]].data);
                }
            }
        }
        cout<<-1<<endl;
    }
    View Code

    思路:1.结构体里面存data和next  根据每一个地址去找他的data和next.

    2.按照输入顺序将地址分别放在三个数组里面,负数,正数到k,大于k三类

    3.输出时直接输出v数组里面的地址和对应的data,不用管next,因为已经排序好了 下一个节点已经改变 不用管

  • 相关阅读:
    window XP下 php5.5+mysql+apache2+phpmyadmin安装
    poj2478Farey Sequence
    poj2723Get Luffy Out
    niop2015day2
    P2473 [SCOI2008]奖励关
    P4284 [SHOI2014]概率充电器
    P2486 [SDOI2011]染色
    noip2015day1
    hdu 2795 Billboard
    exgcd
  • 原文地址:https://www.cnblogs.com/minqqq/p/12369179.html
Copyright © 2011-2022 走看看