package 复试;
import java.util.*;
class node{
int address;
int data;
int next;
node(int address,int data,int next){
this.address=address;
this.data=data;
this.next=next;
}
}
public class 链表的排序{
public static void main(String [] args){
Scanner sc=new Scanner(System.in);
int firstaddress=sc.nextInt();
int n=sc.nextInt();
int k=sc.nextInt();
node nodes[]=new node[100000];
for(int i=0;i<n;i++){
int address=sc.nextInt();
int data=sc.nextInt();
int next=sc.nextInt();
nodes[address]=new node(address,data,next);
}
//初始化
List<node> lst=new ArrayList<>();
while(firstaddress!=-1){
lst.add(nodes[firstaddress]);
firstaddress=nodes[firstaddress].next;
}
List<node> lst1=new ArrayList<>();//负数
List<node> lst2=new ArrayList<>();
List<node> lst3=new ArrayList<>();
for(int i=0;i<n;i++){
node nod=lst.get(i);
if(nod.data<0){
lst1.add(nod);
}else if(nod.data>=0&&nod.data<=k){
lst2.add(nod);
}else if(nod.data>k){
lst3.add(nod);
}
} List<node> lst4=new ArrayList<>();
lst4.addAll(lst1); lst4.addAll(lst2); lst4.addAll(lst3);
for(int i=0;i<lst4.size()-1;i++){
node nod=lst4.get(i);
System.out.printf("%05d %d %05d\n",nod.address,nod.data,lst4.get(i+1).address);
}
System.out.printf("%05d %d %d\n",lst4.get(lst4.size()-1).address,lst4.get(lst4.size()-1).data,-1);
}
}
只有17分。