3-5 单链表分段逆转 (20 分)
生活随笔
收集整理的這篇文章主要介紹了
3-5 单链表分段逆转 (20 分)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)帶頭結(jié)點(diǎn)的單鏈表和一個(gè)整數(shù)K,要求你將鏈表中的每K個(gè)結(jié)點(diǎn)做一次逆轉(zhuǎn)。例如給定單鏈表 1→2→3→4→5→6 和 K=3,你需要將鏈表改造成 3→2→1→6→5→4;如果 K=4,則應(yīng)該得到 4→3→2→1→5→6。
函數(shù)接口定義:
其中List結(jié)構(gòu)定義如下:
typedef struct Node *PtrToNode; struct Node {ElementType Data; /* 存儲(chǔ)結(jié)點(diǎn)數(shù)據(jù) */PtrToNode Next; /* 指向下一個(gè)結(jié)點(diǎn)的指針 */ }; typedef PtrToNode List; /* 定義單鏈表類型 */L是給定的帶頭結(jié)點(diǎn)的單鏈表,K是每段的長(zhǎng)度。函數(shù)K_Reverse應(yīng)將L中的結(jié)點(diǎn)按要求分段逆轉(zhuǎn)。
裁判測(cè)試程序樣例:
#include <stdio.h> #include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode; struct Node {ElementType Data; /* 存儲(chǔ)結(jié)點(diǎn)數(shù)據(jù) */PtrToNode Next; /* 指向下一個(gè)結(jié)點(diǎn)的指針 */ }; typedef PtrToNode List; /* 定義單鏈表類型 */List ReadInput(); /* 裁判實(shí)現(xiàn),細(xì)節(jié)不表 */ void PrintList( List L ); /* 裁判實(shí)現(xiàn),細(xì)節(jié)不表 */ void K_Reverse( List L, int K );int main() {List L;int K;L = ReadInput();scanf("%d", &K);K_Reverse( L, K );PrintList( L );return 0; }/* 你的代碼將被嵌在這里 */輸入樣例:
6
1 2 3 4 5 6
4
輸出樣例:
4 3 2 1 5 6
其實(shí)思路挺簡(jiǎn)單的,但是當(dāng)時(shí)腦子可能不太清醒沒(méi)實(shí)現(xiàn)對(duì),以上是腦子清醒后寫(xiě)的。
總結(jié)
以上是生活随笔為你收集整理的3-5 单链表分段逆转 (20 分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux --- 高级指令
- 下一篇: 西南科技大学OJ45 分数求和