PAT乙 1075 鍊錶元素分類

2021-08-19 03:55:02 字數 846 閱讀 5191

易錯分析:

1.    可能存在多餘結點,即部分結點即使輸入了,也不在鍊錶中

2.    可能存在大於k的陣列不存在元素

解題過程:

建立乙個結構體陣列,並用空間換時間的方法,把位址作為下標,值作為結構體物件,其中儲存data和next。通過乙個三維向量儲存屬於不同類的元素,最後輸出即可。

程式:

#include #include #include using namespace std;

struct node

linklist[100001];

int main(int argc, char const *argv)

while (start != -1) // 這裡不要用for迴圈,因為會存在有多餘結點的情況。

int flag = 0; // 方便輸出

/* 這種輸出方式可以避免沒有大於k的情況而出現單獨輸出v[3]最後乙個元素出現問題 */

for (int i = 0; i < 3; i++)

for (int j = 0; j < v[i].size(); j++)

else

printf("%05d\n%05d %d ", v[i][j], v[i][j], linklist[v[i][j]].data);

}printf("-1");

return 0;

}

PAT乙1075 鍊錶元素分類 。。。

1075 鍊錶元素分類 25 分 給定乙個單鏈表,請編寫程式將鍊錶元素進行分類排列,使得所有負值元素都排在非負值元素的前面,而 0,k 區間內的元素都排在大於 k 的元素前面。但每一類內部元素的順序是不能改變的。例如 給定鍊錶為 18 7 4 0 5 6 10 11 2,k 為 10,則輸出應該為 ...

PAT1075 鍊錶元素分類

給定乙個單鏈表,請編寫程式將鍊錶元素進行分類排列,使得所有負值元素都排在非負值元素的前面,而 0,k 區間內的元素都排在大於k的元素前面。但每一類內部元素的順序是不能改變的。例如 給定鍊錶為 18 7 4 0 5 6 10 11 2,k為10,則輸出應該為 4 6 2 7 0 5 10 18 11。...

PAT 乙級 1075 鍊錶元素分類 25

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 ...