PAT(乙)1025 反轉連結串列 (25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。
輸入格式:
每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的地址、結點總個數正整數N(<= 10^5^)、以及正整數K(<=N),即要求反轉的子鏈結點的個數。結點的地址是5位非負整數,NULL地址用-1表示。
接下來有N行,每行格式為:
Address Data Next
其中Address是結點地址,Data是該結點儲存的整數資料,Next是下一結點的地址。
輸出格式:
對每個測試用例,順序輸出反轉後的連結串列,其上每個結點佔一行,格式與輸入相同。
輸入樣例:
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
#include<stdio.h> int node[100001][3]; int list[100001]; int main(){ int first, n, k; int add, data, next; scanf("%d %d %d", &first, &n, &k); for (int i = 0; i < n; i++){ scanf("%d %d %d", &add, &data, &next); node[add][1] = data; node[add][2] = next; } if (first == -1){ printf("-1\n"); return 0; } int index = first; int count = 0; list[count++] = first; while (node[index][2] != -1){ node[index][0] = index; index = list[count++] = node[index][2]; } node[index][0] = index; int s = 0, e = s + k - 1; for (; e < count && s < e; s = e+1, e += k){ for (int j = e; j >= s; j--){ if (j == k-1)//第一個 printf("%05d %d ", node[list[j]][0], node[list[j]][1]); else printf("%05d\n%05d %d ", node[list[j]][0], node[list[j]][0], node[list[j]][1]); } } for (int j = s; j < count; j++){ if (j == 0) printf("%05d %d ", node[list[j]][0], node[list[j]][1]); else printf("%05d\n%05d %d ", node[list[j]][0], node[list[j]][0], node[list[j]][1]); } printf("-1\n"); return 0; }
相關推薦
PAT(乙)1025 反轉連結串列 (25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。輸入格式:每個輸入包含1個測試用例。每個測試用例第1行給
PAT (Basic Level) Practise (中文) 1025. 反轉連結串列 (25)
1025. 反轉連結串列 (25) 時間限制 300 ms 記憶體限制 65536 kB 程式碼長度限制 8000 B 判題程式 Standard 作者 CHEN, Yue 給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。
PAT (Basic Level) Practise (中文)1025. 反轉連結串列 (25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的地址、結
(PAT乙級)1025 反轉連結串列(C語言實現)
總結: 1、首先要有hash雜湊思想,關鍵字是首地址,對應到的陣列內可以查詢到首地址對應的數值和下一地址。這樣可以構成一組資料的輸入。 2、還應該考慮輸入樣例中有不在連結串列中的結點的情況。所以用個sum計數統計在連結串列裡的有效節點。注意連結串列的最後為空,所以對應
PAT Basic 1025. 反轉連結串列 (25)(C語言實現)
, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為
PAT乙級—1025. 反轉連結串列 (25)-native
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例
1025. 反轉連結串列 (25)-浙大PAT乙級真題java實現
個人部落格:開啟連結 1025. 反轉連結串列 (25) 給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5
pat 乙級 1025. 反轉連結串列 (25)
目前未解決 9.5 號 目標9.10之前解決 注意考慮輸入樣例中有不在連結串列中的結點的情況。所以用個sum計數 algorithm標頭檔案裡面有reverse函式可以直接呼叫 #in
PAT乙級 1025. 反轉連結串列 (25)--結構體、容器vector、容器pair
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的地址、結
PAT 1025. 反轉連結串列 (25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的地址、結
PAT 1025. 反轉連結串列 (25)---最後一個測試點的坑點
題目描述: 給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包
乙級 PAT 1025. 反轉連結串列 (25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。輸入格式:每個輸入包含1個測試用例。每個測試用例第1行給
1025 反轉連結串列 (25)(25 分)
1025 反轉連結串列 (25)(25 分)給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。輸入格式:每
1025. 反轉連結串列 (25) PAT乙級真題
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的地址、結
1025. 反轉連結串列 (25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測
PAT-乙-1025 1025 反轉連結串列 (25 分)
程式碼 #include <iostream> #include <vector> using namespace std; const int MAX = 100000; struct node { int id; int
PAT乙級 1025 反轉連結串列 (25 分)
給定一個常數 K 以及一個單鏈表 L,請編寫程式將 L 中每 K 個結點反轉。例如:給定 L 為 1→2→3→4→5→6,K 為 3,則輸出應該為 3→2→1→6→5→4;如果 K 為 4,則輸出應該為 4→3→2→1→5→6,即最後不到 K 個元素不反轉。 輸入格式: 每個輸入包含
PAT(Python)-1025:反轉連結串列(25)
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測
【PAT】1025 反轉連結串列(25)basic
題目地址:http://pat.zju.edu.cn/contests/pat-b-practise/1025 /* 1.設定錄入的vector足夠大,直接把vector的index與節點的address匹配,這在節點數很少的情況下可用; 2.從給定頭結點指標開始,順序找到
PAT 1025 乙等 (反轉連結串列) c++
給定一個常數K以及一個單鏈表L,請編寫程式將L中每K個結點反轉。例如:給定L為1→2→3→4→5→6,K為3,則輸出應該為3→2→1→6→5→4;如果K為4,則輸出應該為4→3→2→1→5→6,即最後不到K個元素不反轉。 輸入格式: 每個輸入包含1個測試用例。每個測試用例第1行給出第1個結點的地址、結點總個