編程題 02-線性結構3 Reversing Linked List【PAT】

文章目錄

  • 題目
    • 輸入格式
    • 輸出格式
    • 輸入樣例
    • 輸出樣例
  • 題解
    • 解題思路
    • 完整代碼

編程練習題目集目錄

題目

??Given a constant K K K and a singly linked list L L L, you are supposed to reverse the links of every K K K elements on L L L. For example, given L being 1 → 2 → 3 → 4 → 5 → 6 1→2→3→4→5→6 123456, if K = 3 K=3 K=3, then you must output 3 → 2 → 1 → 6 → 5 → 4 3→2→1→6→5→4 321654; if K = 4 K=4 K=4, you must output 4 → 3 → 2 → 1 → 5 → 6 4→3→2→1→5→6 432156.

輸入格式

??Each input file contains one test case. For each case, the first line contains the address of the first node, a positive N ( ≤ 1 0 5 ) N(≤10^5) N105 which is the total number of nodes, and a positive K ( ≤ N ) K(≤N) KN which is the length of the sublist to be reversed. The address of a node is a 5-digit nonnegative integer, and NULL is represented by ? 1 -1 ?1.

??Then N N N lines follow, each describes a node in the format:

Address Data Next

??where Address is the position of the node, Data is an integer, and Next is the position of the next node.

輸出格式

??For each case, output the resulting ordered linked list. Each node occupies a line, and is printed in the same format as in the input.

輸入樣例

00100 6 4
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218

輸出樣例

00000 4 33218
33218 3 12309
12309 2 00100
00100 1 99999
99999 5 68237
68237 6 -1

題解

解題思路

??使用兩個數組 d a t a data data n e x t next next 分別存儲每個節點的數據和指向下一個節點的指針。從頭節點開始,按順序將節點的地址存儲在數組 l i s t list list 中,構建鏈表的順序結構。將 l i s t list list 中的節點按分組大小 K K K 進行反轉。將反轉后的節點順序存儲在結果數組 r e s u l t result result 中,即可。

完整代碼

#include <iostream>
using namespace std;int main(void) {int number, k, n, sum = 0;cin >> number >> n >> k;int temp, data[100005], next[1000005], list[100005], result[100005];// 讀取鏈表節點信息for (int i = 0; i < n; i++) {cin >> temp;cin >> data[temp] >> next[temp];}// 構建初始鏈表順序while (number != -1) {list[sum++] = number;number = next[number];}// 復制初始鏈表到結果數組for (int i = 0; i < sum; i++) result[i] = list[i];// 按照分組大小 K 反轉鏈表中的每個分組for (int i = 0; i < (sum - sum % k); i++)result[i] = list[i / k * k + k - 1 - i % k];// 輸出反轉后的鏈表for (int i = 0; i < sum - 1; i++)printf("%05d %d %05d\n", result[i], data[result[i]], result[i + 1]);printf("%05d %d -1", result[sum - 1], data[result[sum - 1]]);return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83216.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83216.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83216.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

互聯網大廠Java求職面試實戰:Spring Boot到微服務全景解析

&#x1f4aa;&#x1f3fb; 1. Python基礎專欄&#xff0c;基礎知識一網打盡&#xff0c;9.9元買不了吃虧&#xff0c;買不了上當。 Python從入門到精通 2. 我的免費工具站&#xff1a; 歡迎訪問 https://tools-6wi.pages.dev/ &#x1f601; 3. 畢業設計專欄&#xff0c;畢業…

課程11. 計算機視覺、自編碼器和生成對抗網絡 (GAN)

計算機視覺、自編碼器和生成對抗網絡&#xff08;GAN&#xff09; 自動編碼器Vanilla自動編碼器使用 AE 生成新對象. 變分 AE (VAE)AE 條件 GAN理論示例下載并準備數據GAN模型 額外知識 課程計劃&#xff1a; 自動編碼器&#xff1a; 自動編碼器結構&#xff1b;使用自動編碼器…

MarkitDown:AI時代的文檔轉換利器

在當今AI快速發展的時代,如何高效地將各種格式的文檔轉換為機器可讀的格式,成為了一個迫切需要解決的問題。今天,我們來介紹一款由微軟開發的強大工具——MarkitDown,它正是為解決這一問題而生的。 什么是MarkitDown? MarkitDown是一個用Python編寫的輕量級工具,專門用…

Python實戰案例:打造趣味猜拳小游戲

Python實戰案例&#xff1a;猜拳小游戲 文章目錄 Python實戰案例&#xff1a;猜拳小游戲一、案例背景二、代碼實現三、代碼解析3.1 執行過程3.2 流程圖 四、案例總結1. 核心知識點運用2. 編程思維提升 一、案例背景 猜拳游戲&#xff08;石頭剪刀布&#xff09;是一款規則簡單…

MCP:重塑AI交互的通用協議,成為智能應用的基礎設施

目錄: 為什么我們需要一個AI世界的USB-C?MCP的核心架構與工作原理MCP如何解決當前AI生態系統的碎片化問題從代碼到實踐:構建基于MCP的智能應用MCP的未來:從工具到生態為什么我們需要一個AI世界的USB-C? 還記得在USB-C標準普及之前,我們的數字生活是什么樣子嗎?抽屜里塞…

如何保證RabbitMQ消息的順序性?

保證RabbitMQ消息的順序性是一個常見的需求&#xff0c;尤其是在處理需要嚴格順序的消息時。然而&#xff0c;默認情況下&#xff0c;RabbitMQ不保證消息的全局順序&#xff0c;因為消息可能會通過不同的路徑&#xff08;例如不同的網絡連接或線程&#xff09;到達隊列&#xf…

HTML-2.2 列表--無序列表、有序列表、定義列表

本系列可作為前端學習系列的筆記&#xff0c;代碼的運行環境是在HBuilder中&#xff0c;小編會將代碼復制下來&#xff0c;大家復制下來就可以練習了&#xff0c;方便大家學習。小編作為新晉碼農一枚&#xff0c;會定期整理一些寫的比較好的代碼&#xff0c;作為自己的學習筆記…

Vuex和Vue的區別

Vue和Vuex有著不同的功能和定位&#xff0c;主要區別如下&#xff1a; 概念與功能 - Vue&#xff1a;是一個構建用戶界面的JavaScript框架&#xff0c;專注于視圖層的開發&#xff0c;采用組件化的方式構建應用程序&#xff0c;通過數據綁定和指令系統&#xff0c;能方便地…

數據可視化-----子圖的繪制及坐標軸的共享

目錄 繪制固定區域的子圖 &#xff08;一&#xff09;、繪制單子圖 subplot()函數 Jupyter Notebook的繪圖模式 &#xff08;二&#xff09;、多子圖 subplots()--可以在規劃好的所有區域中一次繪制多個子圖 &#xff08;三&#xff09;、跨行跨列 subplot2grid()---將整…

基于Qt6 + MuPDF在 Arm IMX6ULL運行的PDF瀏覽器——MuPDF Adapter文檔

項目地址&#xff1a;總項目Charliechen114514/CCIMXDesktop: This is a Qt Written Desktop with base GUI Utilities 本子項目地址&#xff1a;CCIMXDesktop/extern_app/pdfReader at main Charliechen114514/CCIMXDesktop 前言 這個部分說的是Mupdf_adaper下的文檔的工…

Linux 防火墻 firewalld 實戰配置教程!

最近工作上處理了很多關系配置服務器防火墻的操作&#xff0c;于是想寫一篇理論與實踐并存的文章&#xff0c;在這里分享給大家&#xff0c;希望對您有所幫助&#xff01; 主要包括以下幾部分內容&#xff1a; 防火墻概述 firewalld原理框架 與iptables的異同點 firewalld常…

C#發送文件到藍牙設備

測試環境&#xff1a; visual studio 2022 win11筆記本電腦&#xff0c;具有藍牙功能 .net6控制臺 測試步驟如下&#xff1a; 1 新增名為BluetoothDemo控制臺項目 2 通過nuget安裝InTheHand.Net.Bluetooth&#xff0c;版本選擇4.2.1和安裝InTheHand.Net.Obex&#xff0c;版…

初識 Pandas:Python 數據分析的利器

在數據分析、數據清洗和可視化等領域&#xff0c;Python 無疑是最受歡迎的語言之一&#xff0c;而在 Python 的數據處理生態中&#xff0c;Pandas 是最核心、最基礎的庫之一。如果你接觸數據分析、機器學習、金融建模&#xff0c;或者只是想處理一些 Excel 表格&#xff0c;那么…

SpringBoot項目使用POI-TL動態生成Word文檔

近期項目工作需要動態生成Word文檔的需求&#xff0c;特意調研了動態生成Word的技術方案。主要有以下兩種&#xff1a; 第一種是FreeMarker模板來進行填充&#xff1b;第二種是POI-TL技術使用Word模板來進行填充&#xff1b; 以下是關于POI-TL的官方介紹 重點關注&#xff1…

fakeroot 在沒有超級用戶權限的情況下模擬文件系統的超級用戶行為

fakeroot 是一個在 Linux 環境中使用的工具&#xff0c;它允許用戶在沒有超級用戶權限的情況下模擬文件系統的超級用戶行為。它是一個在 Linux 環境中廣泛使用的工具&#xff0c;通常包含在大多數 Linux 發行版的軟件倉庫中。? 主要功能 ?模擬 root 權限?&#xff1a;fake…

Spring Spring Boot 常用注解整理

Spring & Spring Boot 常用注解整理 先理解核心概念&#xff1a;什么是注解&#xff08;Annotation&#xff09;&#xff1f;第一部分&#xff1a;IOC&#xff08;控制反轉&#xff09;和 DI&#xff08;依賴注入&#xff09;1. Component2. Service, Repository, Controll…

AIGC與數字媒體實驗室解決方案分享

第1部分 概述 1.1 建設目標 1.深度融合AIGC技術&#xff0c;培養能夠駕馭新質生產力的數字媒體人才 通過引入前沿的AIGC技術&#xff0c;確保學生能夠接觸到最先進的人工智能應用。教學內容理論和實踐結合&#xff0c;讓學生在實際操作中熟練掌握AIGC工具&#xff0c;生成高…

訊聯云庫項目開發日志(二)AOP參數攔截

目錄 利用AOP實現參數攔截: 一、??HTTP請求進入Controller?&#xff08;發送郵件驗證碼&#xff09; 二、AOP切面觸發 1. 切面攔截&#xff08;GlobalOperactionAspect.class&#xff09; method.getAnnotation()?? null interceptor 判斷?? 2.參數校驗注解 3. 參…

用OBD部署OceanBase社區版的避坑指南

以下是用OBD黑屏部署 OceanBase社區版時容易碰到的幾個問題及解決思路&#xff0c;供大家參考。 一、 遇坑步驟&#xff1a;用yaml文件部署集群&#xff1a; obd cluster deploy obtest -c mini-single-example.yaml 報錯&#xff1a; Package oceanbase-ce-4.2.1.8-108000…

無錫哲訊科技:引領芯片封裝SAP系統的智能化革命

芯片封裝行業的數字化轉型 在全球半導體產業高速發展的今天&#xff0c;芯片封裝作為產業鏈的關鍵環節&#xff0c;直接影響著芯片的性能、可靠性和成本。隨著5G、人工智能、物聯網等技術的普及&#xff0c;市場對芯片的需求激增&#xff0c;封裝企業面臨著效率提升、良率優…