3-5 单链表分段逆转 (20 分)
生活随笔
收集整理的這篇文章主要介紹了
3-5 单链表分段逆转 (20 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個帶頭結點的單鏈表和一個整數K,要求你將鏈表中的每K個結點做一次逆轉。例如給定單鏈表 1→2→3→4→5→6 和 K=3,你需要將鏈表改造成 3→2→1→6→5→4;如果 K=4,則應該得到 4→3→2→1→5→6。
函數接口定義:
其中List結構定義如下:
typedef struct Node *PtrToNode; struct Node {ElementType Data; /* 存儲結點數據 */PtrToNode Next; /* 指向下一個結點的指針 */ }; typedef PtrToNode List; /* 定義單鏈表類型 */L是給定的帶頭結點的單鏈表,K是每段的長度。函數K_Reverse應將L中的結點按要求分段逆轉。
裁判測試程序樣例:
#include <stdio.h> #include <stdlib.h>typedef int ElementType;typedef struct Node *PtrToNode; struct Node {ElementType Data; /* 存儲結點數據 */PtrToNode Next; /* 指向下一個結點的指針 */ }; typedef PtrToNode List; /* 定義單鏈表類型 */List ReadInput(); /* 裁判實現,細節不表 */ void PrintList( List L ); /* 裁判實現,細節不表 */ 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
其實思路挺簡單的,但是當時腦子可能不太清醒沒實現對,以上是腦子清醒后寫的。
總結
以上是生活随笔為你收集整理的3-5 单链表分段逆转 (20 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux --- 高级指令
- 下一篇: 西南科技大学OJ45 分数求和