zoukankan      html  css  js  c++  java
  • PAT02-线性结构3 Reversing Linked List

    题目:https://pintia.cn/problem-sets/1010070491934568448/problems/1037889290772254722

    先是看了牛客(https://www.nowcoder.com/questionTerminal/5f44c42fd21a42b8aeb889ab83b17ad0)的几个代码,觉得很复杂,发现问题很多,用python写内容真的不容易

    后来找到一个相当简洁的代码,真心点赞,地址:https://www.liuchuo.net/archives/463

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main() {
        int first, k, n, temp;
        cin >> first >> n >> k;
        int data[100005], next[100005], list[100005];
        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
    ", list[i], data[list[i]], list[i + 1]);
        printf("%05d %d -1", list[sum - 1], data[list[sum - 1]]);
        return 0;
    }

    反思总结:

    1.对库的函数不是很熟悉。   打印常用的库,和对应的函数,最好背诵一下

    2.对c++,不熟练,要常练习

  • 相关阅读:
    JavaScript将数字转换为大写金额
    css浮动
    JS合并数组的几种方法及优劣比较
    jquery.zclip.js粘贴功能
    iframe获取元素
    某些框架,类库
    web前端基础知识!
    前端开发流程
    学习其他前端技术
    SVN的学习以及使用!
  • 原文地址:https://www.cnblogs.com/captain-dl/p/10019056.html
Copyright © 2011-2022 走看看