0
点赞
收藏
分享

微信扫一扫

PAT乙级 1025 反转链表

十里一走马 2022-05-03 阅读 88
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<bits/stdc++.h>

using namespace std;

struct node{
    int addr;
    int data;
    int next;
};

int main(void){
    int add0, num, tet, i;
    node nodall[100000];
    vector<node> vec;
    cin>>add0>>num>>tet;
    for(i=0; i<num; i++){
        node nod;
        cin>>nod.addr>>nod.data>>nod.next;
        nodall[nod.addr] = nod;
    }
    for(i=0; i<num; i++){
        vec.push_back(nodall[add0]);
        add0 = nodall[add0].next;
    }
    int steps = num/tet;
    for(i=0; i < steps; i++){
        reverse(vec.begin() + i * tet, vec.begin() + i * tet + tet);
    }
    for(i=0; i<vec.size() - 1; i++){
        vec[i].next = vec[i + 1].addr;
        printf("%05d %d %05d\n", vec[i].addr, vec[i].data, vec[i].next);
    }
    vec[num - 1].next = -1;
    i = num - 1;
    printf("%05d %d -1\n", vec[i].addr, vec[i].data);
    return 0;
}

https://github.com/ZouJiu1/PATicon-default.png?t=M3K6https://github.com/ZouJiu1/PAT

举报

相关推荐

0 条评论