#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Node{
int NodeDate;
int NodeNext;
}Node;
int main()
{
int FirstAddress, address, date, next,i,j,n,k;
int arr1[100001], arr2[100001];
Node p[100001];
scanf("%d %d",&FirstAddress,&n);
while(n--){
scanf("%d %d %d",&address,&date,&next);
p[address].NodeDate = date;
p[address].NodeNext = next;
}
//地址排序操作
for(i=0;FirstAddress !=-1;i++){
arr1[i] = FirstAddress;
FirstAddress = p[FirstAddress].NodeNext;
}
//重排链表操作
i -= 1;
j = k = 0;
while(j<=i){
if(j==i){
arr2[k++] = arr1[i--];
}
else{
arr2[k++] = arr1[i--];
arr2[k++] = arr1[j++];
}
}
for(i=0;i<k-1;i++){
printf("%05d %d %05d\n",arr2[i],p[arr2[i]].NodeDate,arr2[i+1]);
}
printf("%05d %d -1\n",arr2[k-1],p[arr2[k-1]].NodeDate);
return 0;
}
重排链表(25 分)
最新推荐文章于 2025-11-06 01:59:12 发布
博客围绕重排链表展开,但具体内容缺失。链表重排是信息技术中数据结构相关操作,对链表元素顺序进行重新排列,在数据处理等场景有应用。
3807

被折叠的 条评论
为什么被折叠?



