1. 程式人生 > >PTA——鏈表逆序

PTA——鏈表逆序

fir return res iostream name reverse 線性 address int

PTA

02-線性結構3 Reversing Linked List

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<algorithm>
 4 using namespace std;
 5 #define MAXSIZE 1000010
 6 
 7 struct node {
 8     int data;
 9     int next;
10 } node[MAXSIZE];
11 
12 int List[MAXSIZE];
13 int main() {
14     int
First,n,k; 15 cin>>First>>n>>k; 16 int Address,Data,Next; 17 for(int i=0; i<n; i++) { 18 cin>>Address>>Data>>Next; 19 node[Address].data=Data; 20 node[Address].next=Next; 21 } 22 int j=0; 23 int p=First; 24
while(p!=-1) { 25 List[j++]=p; 26 p=node[p].next; 27 } 28 int i=0; 29 while(i+k<=j) { 30 reverse(&List[i],&List[i+k]); 31 i=i+k; 32 } 33 for(i=0; i<j-1; i++) 34 printf("%05d %d %05d\n",List[i],node[List[i]].data,List[i+1]); 35 printf("%05d %d -1\n
",List[i],node[List[i]].data); 36 return 0; 37 }

分析:

1、用了c++函數庫中的reverse()

2、直接用數組模擬內存

PTA——鏈表逆序