PAT 1074. Reversing Linked List

来源:互联网 发布:linux date格式 编辑:程序博客网 时间:2024/05/23 12:03

题目链接

  • 牺牲空间换时间
  • 用algorithm下的reverse可以简单的逆转数组中的位置顺序
#include<stdio.h>#include<math.h>#include<algorithm>#include<stdlib.h>#include<iostream>using namespace std;int llist[100010];int node[100010][2];int main(){        int st,num,r;        scanf("%d %d %d",&st,&num,&r);         int address,data,next,i;     for(i=0;i<num;i++)     {          scanf("%d %d %d",&address,&data,&next);          node[address][0]=data;          node[address][1]=next;      }      int m=0,n=st;      while(n!=-1)      {          llist[m++]=n;          n=node[n][1];      }      i=0;      while(i+r<=m)     {          reverse(llist+i,llist+i+r);          i=i+r;      }      for (i = 0; i < m-1; i++)      {          printf("%05d %d %05d\n", llist[i], node[llist[i]][0], llist[i+1]);      }      printf("%05d %d -1\n", llist[i], node[llist[i]][0]);   return 0;}
0 0
原创粉丝点击