静态链表
由于sort的原因,所以设置的node要不一样
排序的时候,要整个表进行排序
数据里面会有无效的节点,即不在链表中的数据,称之为脏数据,应该排除
#include#include #include using namespace std; struct Node { int adr=0,data=0,next=0; int tag= 0; }node[110000]; bool cmp(Node a,Node b) { if(a.tag!=b.tag) return a.tag>b.tag; return a.data >n>>head; for(int i=0;i >a; cin>>node[a].data>>node[a].next; node[a].adr=a; } int num=0; for(int i=head;i!=-1;i=node[i].next)//从头到尾遍历一遍链表,去除脏数据 { node[i].tag=1; num++; } sort(&node[0],&node[110000],cmp); if(num==0) {printf("0 -1");return 0;} printf("%d %05dn",num,node[0].adr); for(int i=0;i



