1075 链表元素分类 (25 分)

#include <bits/stdc++.h>
using namespace std;
struct node{
    int data,next;
};
vector<int> v[3];
int main()
{
    int start,n,k,a;
    scanf("%d%d%d",&start,&n,&k);
    node list[100000];
    for(int i=0;i<n;i++){
        scanf("%d",&a);
        scanf("%d%d",&list[a].data,&list[a].next);
    }
    int p = start;
    while(p!=-1){
        int data = list[p].data;
        if(data<0){
            v[0].push_back(p);
        }
        else if(data>=0&&data<=k){
            v[1].push_back(p);
        }
        else{
            v[2].push_back(p);
        }
         p=list[p].next;
    }
        int flag = 0;
        for(int i = 0;i < 3;i++){
            for(int j = 0;j < v[i].size();j++){
                if(flag==0){
                    printf("%05d %d ",v[i][j],list[v[i][j]].data);
                    flag = 1;
                }else{
                    printf("%05d
%05d %d ",v[i][j],v[i][j],list[v[i][j]].data);
                }
            }
        }
        printf("-1");
        return 0;
}
原文地址:https://www.cnblogs.com/tonyyy/p/10491874.html