《數據結構》實驗二鏈表

數據結構實驗之鏈表一:順序建立鏈表

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

輸入N個整數,按照輸入的順序建立單鏈表存儲,並遍歷所建立的單鏈表,輸出這些數據。

Input

第一行輸入整數的個數N;
第二行依次輸入每個整數。

Output

輸出這組整數。

Sample Input

8
12 56 4 6 55 15 33 62

Sample Output

12 56 4 6 55 15 33 62

Hint

不得使用數組!

Source

數據結構實驗之鏈表二:逆序建立鏈表

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

輸入整數個數N,再輸入N個整數,按照這些整數輸入的相反順序建立單鏈表,並依次遍歷輸出單鏈表的數據。

Input

第一行輸入整數N;;
第二行依次輸入N個整數,逆序建立單鏈表。

Output

依次輸出單鏈表所存放的數據。

Sample Input

10
11 3 5 27 9 12 43 16 84 22 

Sample Output

22 84 16 43 12 9 27 5 3 11 

Hint

不能使用數組!

Source

數據結構實驗之鏈表三:鏈表的逆置

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

輸入多個整數,以-1作爲結束標誌,順序建立一個帶頭結點的單鏈表,之後對該單鏈表的數據進行逆置,並輸出逆置後的單鏈表數據。

Input

輸入多個整數,以-1作爲結束標誌。

Output

輸出逆置後的單鏈表數據。

Sample Input

12 56 4 6 55 15 33 62 -1

Sample Output

62 33 15 55 6 4 56 12

Hint

不得使用數組。

Source

數據結構實驗之鏈表四:有序鏈表的歸併

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

分別輸入兩個有序的整數序列(分別包含M和N個數據),建立兩個有序的單鏈表,將這兩個有序單鏈表合併成爲一個大的有序單鏈表,並依次輸出合併後的單鏈表數據。

Input

第一行輸入M與N的值;
第二行依次輸入M個有序的整數;
第三行依次輸入N個有序的整數。

Output

輸出合併後的單鏈表所包含的M+N個有序的整數。

Sample Input

6 5
1 23 26 45 66 99
14 21 28 50 100

Sample Output

1 14 21 23 26 28 45 50 66 99 100

Hint

不得使用數組!

Source

數據結構實驗之鏈表五:單鏈表的拆分

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

輸入N個整數順序建立一個單鏈表,將該單鏈表拆分成兩個子鏈表,第一個子鏈表存放了所有的偶數,第二個子鏈表存放了所有的奇數。兩個子鏈表中數據的相對次序與原鏈表一致。

Input

第一行輸入整數N;;
第二行依次輸入N個整數。

Output

第一行分別輸出偶數鏈表與奇數鏈表的元素個數;
第二行依次輸出偶數子鏈表的所有數據;
第三行依次輸出奇數子鏈表的所有數據。

Sample Input

10
1 3 22 8 15 999 9 44 6 1001

Sample Output

4 6
22 8 44 6 
1 3 15 999 9 1001

Hint

不得使用數組!

Source

數據結構實驗之鏈表六:有序鏈表的建立

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

輸入N個無序的整數,建立一個有序鏈表,鏈表中的結點按照數值非降序排列,輸出該有序鏈表。

Input

第一行輸入整數個數N;
第二行輸入N個無序的整數。

Output

依次輸出有序鏈表的結點值。

Sample Input

6
33 6 22 9 44 5

Sample Output

5 6 9 22 33 44

Hint

不得使用數組!

Source

數據結構實驗之鏈表七:單鏈表中重複元素的刪除

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

按照數據輸入的相反順序(逆位序)建立一個單鏈表,並將單鏈表中重複的元素刪除(值相同的元素只保留最後輸入的一個)。

Input

第一行輸入元素個數 n (1 <= n <= 15);
第二行輸入 n 個整數,保證在 int 範圍內。

Output

第一行輸出初始鏈表元素個數;
第二行輸出按照逆位序所建立的初始鏈表;
第三行輸出刪除重複元素後的單鏈表元素個數;
第四行輸出刪除重複元素後的單鏈表。

Sample Input

10
21 30 14 55 32 63 11 30 55 30

Sample Output

10
30 55 30 11 63 32 55 14 30 21
7
30 55 11 63 32 14 21

Hint

Source

不得使用數組!

數據結構實驗之鏈表八:Farey序列

Time Limit: 10 ms Memory Limit: 600 KiB

Submit Statistic

Problem Description

Farey序列是一個這樣的序列:其第一級序列定義爲(0/1,1/1),這一序列擴展到第二級形成序列(0/1,1/2,1/1),擴展到第三極形成序列(0/1,1/3,1/2,2/3,1/1),擴展到第四級則形成序列(0/1,1/4,1/3,1/2,2/3,3/4,1/1)。以後在每一級n,如果上一級的任何兩個相鄰分數a/c與b/d滿足(c+d)<=n,就將一個新的分數(a+b)/(c+d)插入在兩個分數之間。對於給定的n值,依次輸出其第n級序列所包含的每一個分數。

Input

輸入一個整數n(0<n<=100)

Output

依次輸出第n級序列所包含的每一個分數,每行輸出10個分數,同一行的兩個相鄰分數間隔一個製表符的距離。

Sample Input

6

Sample Output

0/1   1/6   1/5   1/4   1/3   2/5   1/2   3/5   2/3   3/4
4/5   5/6   1/1

Hint

 

Source

數據結構實驗之鏈表九:雙向鏈表

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

學會了單向鏈表,我們又多了一種解決問題的能力,單鏈表利用一個指針就能在內存中找到下一個位置,這是一個不會輕易斷裂的鏈。但單鏈表有一個弱點——不能回指。比如在鏈表中有兩個節點A,B,他們的關係是B是A的後繼,A指向了B,便能輕易經A找到B,但從B卻不能找到A。一個簡單的想法便能輕易解決這個問題——建立雙向鏈表。在雙向鏈表中,A有一個指針指向了節點B,同時,B又有一個指向A的指針。這樣不僅能從鏈表頭節點的位置遍歷整個鏈表所有節點,也能從鏈表尾節點開始遍歷所有節點。對於給定的一列數據,按照給定的順序建立雙向鏈表,按照關鍵字找到相應節點,輸出此節點的前驅節點關鍵字及後繼節點關鍵字。

Input

第一行兩個正整數n(代表節點個數),m(代表要找的關鍵字的個數)。第二行是n個數(n個數沒有重複),利用這n個數建立雙向鏈表。接下來有m個關鍵字,每個佔一行。

Output

對給定的每個關鍵字,輸出此關鍵字前驅節點關鍵字和後繼節點關鍵字。如果給定的關鍵字沒有前驅或者後繼,則不輸出。
注意:每個給定關鍵字的輸出佔一行。
           一行輸出的數據之間有一個空格,行首、行末無空格。

 

Sample Input

10 3
1 2 3 4 5 6 7 8 9 0
3
5
0

Sample Output

2 4
4 6
9

Hint

 

Source

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章