思路:
使用静态链表,多一个order的属性,来记录他应该所在的位置。然后按照order来排序。
但是:还有一个样例没有通过!!!
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=100010;
struct node
{
int address,data,next;
int order;
}Node[maxn];
bool cmp(node a,node b){
return a.order<b.order;
}
int main()
{
bool isexit[1000010]={false};//哈希表
memset(isexit,0,sizeof(isexit));
int begin,n;
scanf("%d %d",&begin,&n);
int address;
for(int i=0;i<n;i++){
scanf("%d",&address);
scanf("%d%d",&Node[address].data,&Node[address].next);
Node[address].address=address;
}
for(int i=0;i<maxn;i++)
{
Node[i].order=maxn*2;//让每一个都是无效节点
}
int p=begin;
int count1=0;//有效的