PAT甲級真題1133 鍊錶元素分類 簡單解法)

2021-10-10 08:40:28 字數 1476 閱讀 2269

給定乙個單鏈表,請編寫程式將鍊錶元素進行分類排列,使得所有負值元素都排在非負值元素的前面,而 [0,k][0,k] 區間內的元素都排在大於 kk 的元素前面。

但每一類內部元素的順序是不能改變的。

例如:給定鍊錶為 18→7→-4→0→5→-6→10→11→-2,kk 為 1010,則輸出應該為 -4→-6→-2→7→0→5→10→18→11。

輸入格式

第一行包含第 11 個結點的位址;結點總個數,即正整數 nn;以及正整數 kk。

結點的位址是 55 位非負整數,null 位址用 −1 表示。

接下來有 n 行,每行格式為:

address data next

其中 address 是結點位址;data 是該結點儲存的資料,為 [−105,105][−105,105] 區間內的整數;next 是下一結點的位址。

題目保證給出的鍊錶不為空。

輸出格式

按鍊錶從頭到尾的順序輸出重排後的結果鍊錶,其上每個結點佔一行,格式與輸入相同。

資料範圍

1≤n≤1051≤n≤105,

1≤k≤10001≤k≤1000

輸入樣例:

00100 9 10

23333 10 27777

00000 0 99999

00100 18 12309

68237 -6 23333

33218 -4 00000

48652 -2 -1

99999 5 68237

27777 11 48652

12309 7 33218

輸出樣例:

33218 -4 68237

68237 -6 48652

48652 -2 12309

12309 7 00000

00000 0 99999

99999 5 23333

23333 10 00100

00100 18 27777

27777 11 -1

#include

using

namespace std;

const

int n=

100010

;int e[n]

,ne[n]

;bool flag[n]

;int

main()

//存位址

vector<

int>a;

for(

int i=h;i!=-1

;i=ne[i]

)for

(int i=h;i!=-1

;i=ne[i]

)for

(int i=h;i!=-1

;i=ne[i]

)for

(int i=

0;isize()

;i++

)return0;

}

PAT甲級真題1153

pat 准考證號由 44 部分組成 第 11 位是級別,即 t 代表頂級 a 代表甲級 b 代表乙級 第 2 42 4 位是考場編號,範圍從 101101 到 999999 第 5 105 10 位是考試日期,格式為年 月 日順次各佔 22 位 最後 11 1311 13 位是考生編號,範圍從 00...

PAT甲級真題 1014 Wait In Line

一 題目 二 思路 題意 模擬排隊,但和實際排隊的區別在於 思路 模擬排隊,記錄消費者辦理結束所需的總時間 以分鐘為單位,最後轉換為時刻,由等待時間 辦理時間組成 若等待時間wt 540,則給予sorry 否則,根據總時間sum算出相應時刻 注意 當兩個視窗同樣長且均未滿時,要同時入隊消費者,使之隊...

PAT甲級真題1140 外觀數列

外觀數列是指具有以下特點的整數序列 d,d1,d111,d113,d11231,d112213111,其中 d 是乙個 0,9 0,9 範圍內的不等於 11 的整數。序列的第 n 1n 1 項是對第 nn 項的描述。比如第 22 項表示第 11 項有 11 個 d,所以就是 d1 第 22 項是 1...