mirror of
https://github.com/hao14293/2021-Postgraduate-408.git
synced 2026-02-02 18:20:30 +08:00
Create 02-线性结构3 Reversing Linked List (25 分).cpp
This commit is contained in:
24
ZJU_MOOC_数据结构/02-线性结构3 Reversing Linked List (25 分).cpp
Normal file
24
ZJU_MOOC_数据结构/02-线性结构3 Reversing Linked List (25 分).cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include <iostream>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
|
||||
int main(){
|
||||
int first, n, k, temp;
|
||||
cin >> first >> n >> k;
|
||||
int data[100000], next[100000], list[100000];
|
||||
for(int i = 0; i < n; i++){
|
||||
cin >> temp;
|
||||
cin >> data[temp] >> next[temp];
|
||||
}
|
||||
int sum = 0;
|
||||
while(first != -1){
|
||||
list[sum++] = first;
|
||||
first = next[first];
|
||||
}
|
||||
for(int i = 0; i < (sum - sum % k); i += k)
|
||||
reverse(begin(list) + i, begin(list) + i + k);
|
||||
for(int i = 0; i < sum - 1; i++)
|
||||
printf("%05d %d %05d\n", list[i], data[list[i]], list[i + 1]);
|
||||
printf("%05d %d -1", list[sum - 1], data[list[sum - 1]]);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user