3 5 單鏈表分段逆轉 20 分

2021-09-28 12:30:38 字數 1339 閱讀 8045

給定乙個帶頭結點的單鏈表和乙個整數k,要求你將鍊錶中的每k個結點做一次逆轉。例如給定單鏈表 1→2→3→4→5→6 和 k=3,你需要將鍊錶改造成 3→2→1→6→5→4;如果 k=4,則應該得到 4→3→2→1→5→6。

函式介面定義:

void k_reverse( list l, int k );
其中list結構定義如下:

typedef struct node *ptrtonode;

struct node ;

typedef ptrtonode list; /* 定義單鏈表型別 */

l是給定的帶頭結點的單鏈表,k是每段的長度。函式k_reverse應將l中的結點按要求分段逆轉。裁判測試程式樣例:

#include #include typedef int elementtype;

typedef struct node *ptrtonode;

struct node ;

typedef ptrtonode list; /* 定義單鏈表型別 */

list readinput(); /* 裁判實現,細節不表 */

void printlist( list l ); /* 裁判實現,細節不表 */

void k_reverse( list l, int k );

int main()

/* 你的**將被嵌在這裡 */

輸入樣例:61 2 3 4 5 6

4輸出樣例:

//!不足k 個,不用逆置

return

;else

t->next = w;

//!將原來的第乙個資料結點 t ,即現在第k個資料結點,將之前一刀兩斷的接到尾部

h = t;

//!更新下次可能要逆置片段的頭結點 }}

}其實思路挺簡單的,但是當時腦子可能不太清醒沒實現對,以上是腦子清醒後寫的。

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。void k reverse list l,int k 其中list結構定義如...

4 1 單鏈表逆轉 20分

4 1 單鏈表逆轉 20分 本題要求實現乙個函式,將給定的單鏈表逆轉。list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函...

4 1 單鏈表逆轉 20分

本題要求實現乙個函式,將給定的單鏈表逆轉。函式介面定義 list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函式revers...