當前位置:編程學習大全網 - 編程語言 - 學完c語言後?

學完c語言後?

如果學了C 不會數據結構的話 等於白學了,必須會數據結構,比如鏈表,樹,圖等幾個主要的結構

以前我也是剛學完C不太會數據結構,但其實學數據結構最關鍵的是要學會typedef的用法,要吃透,吃透他就差不多了,再要註意的是數據結構上的程序都是個抽象概念,上面的程序都是不能直接運行的,比如上面的壹些函數,都是要自己去定義出來才行的

這裏我有些題目 妳先不必把數據結構壹本書都看完,妳做壹道題,肯定與相關的數據結構知識有關,妳對照這些題目去學數據結構上的知識點,相信妳就會很快理解數據結構了

1. 設計壹個單循環鏈表, 對鏈表進行相應的刪除操作。

數據輸入:

第壹行為的正整數個數m。

第二行為要處理的m個正整數,中間用壹個空格間隔;

第三行為要刪除的數據位置,可能為多次循環後之值。

數據輸出:

輸出刪除後的數據排列,中間用空格間隔。

示例:

輸入文件input1.txt:

3

1 2 3

5

輸出:(標準輸出)

1 3

2. 設計壹個有序順序表,要求對兩個順序表中的元素進行排序後輸出。有序順序表和順序表的主要區別是有序順序表中的數據元素按數據元素值非遞減有序。

數據輸入:

第壹行為要處理的第壹個順序表包含的數據個數m。

第二行為要處理的第壹個順序表,m個正整數之間用空格間隔。

第三行為要處理的第二個順序表包含的數據個數n。

第四行為要處理的第二個順序表,n個正整數之間用空格間隔。

數據輸出:

輸出合並後的有序順序表,數據之間用空格間隔。

示例:

輸入文件input2.txt:

2

1 4

2

3 2

輸出:(標準輸出)

1 2 3 4

3. 編寫壹個判斷算術表達式中開括號和閉括號是否配對的算法。

數據輸入:

第壹行:算術表達式個數n

第二行到第(n+1)行:n個算術表達式

數據輸出:

第壹行到第n行:n個算術表達式是否匹配,匹配為1,不匹配為0。

示例:

輸入文件input4.txt:

2

3+(4-5*6)

1-((4-8/2)

輸出:(標準輸出)

1

0

4. 鏈式堆棧設計。要求用鏈式堆棧設計實現堆棧。

數據輸入:

第壹行:要入棧的數據個數m。

第二行:要入棧的m個數據。

第三行:要取出的第n個數據。

數據輸出:

輸出第n個數據的值。

示例:

輸入文件input5.txt:

5

2 4 6 8 10

4

輸出:(標準輸出)

4

5. 設串采用靜態數組存儲結構,編寫函數實現串的替換,即要求在主串S中,查找是否存在子串T,若主串S中存在子串T,則用子串V替換子串T;若主串S中不存在子串T,則返回0。

數據輸入:

第壹行:測試串的個數n

第二行到第(n+1)行:n個串的值

第(n+2)行:子串T

第(n+3)行:子串V

數據輸出:

第壹行到第n行:經過處理之後的n個串,如果存在子串T,則返回替換之後的串,如果不存在子串T,則返回0。

示例:

輸入文件input7.txt:

2

I am a student

I am a teacher

student

teacher

輸出:(標準輸出)

I am a teacher

0

6. 設串采用靜態數組存儲結構,試比較兩個串的大小。

數據輸入:

第壹行:第壹個串的值

第二行:第二個串的值

數據輸出:

第壹行:兩個串的比較結果,比較結果可能有大於、等於和小於三種情況,分別輸出”>”,”=”,”<”。

示例:

輸入文件input8.txt:

I am a student

I am a teacher

輸出:(標準輸出)

<

7. 設對稱矩陣A、B和C為采用壓縮存儲方式存儲的n階上三角矩陣,矩陣元素為整數類型,要求:實現矩陣加C = A + B和矩陣乘C = A × B。

數據輸入:

第壹行:矩陣的行列數m。

第二行到第(m+1)行:矩陣A的各行的的值。

第(m+2)行到第(2m+1)行:矩陣B的各行的的值。

數據輸出:

第1行到第m行:矩陣C各行的值。

第m+1行到第2m行:矩陣D各行的值。

示例:

輸入文件input10.txt:

2

1 2

3 4

5 6

7 8

輸出:(標準輸出)

6 8

10 12

19 22

43 50

8. 若將稀疏矩陣中的非零元素以行序為主序的順序存於壹個壹維數組中,並用壹個二維數組表示稀疏矩陣中的相應元素是否是零元素,若稀疏矩陣中某元素是零元素,則該二維數組中對應位置的元素為0;否則為1。例如對稀疏矩陣A,可用壹維數組V={10,20,30,40}和二維數組{1,0,1,0,0,1,1,0,0}表示該稀疏矩陣。實現使用上述稀疏矩陣存儲結構的矩陣加運算X=X+Y。

數據輸入:

第壹行:矩陣X非零各元素的個數m。

第二行:矩陣X的m個非零元素的值。

第三行:矩陣X的二維0,1數組。

第四行:矩陣Y非零各元素的個數n。

第五行:矩陣Y的n個非零元素的值。

第六行:矩陣Y的二維0,1數組。

數據輸出:

第壹行:矩陣X與Y相加之後非零各元素的值。

第二行:矩陣XY相加之後的二維0,1數組。

示例:

輸入文件 input11.txt:

2

1 2

0 1 0 1

2

3 4

1 0 1 0

輸出:(標準輸出)

3 1 4 2

1 1 1 1

9. 背包問題。設有壹個背包可以放入物品的重量為s,現有n件物品,重量分別為w[0],w[1],...,[n-1]。問題是能否從這n件物品中選擇若幹件放入此背包中使得放入的重量之和正好等於s。如果存在壹種符合上述要求的選擇,則稱此背包問題有解;否則稱此背包問題無解。

數據輸入:

第壹行:測試集合個數m。

第二行:第壹個測試用例的s值。

第三行:第壹個測試用例的物品數量n。

第四行:第壹個測試用例的n件物品的重量,中間用空格分開。

第五行:第二個測試用例的s值。

第六行:第二個測試用例的物品數量n。

第七行:第二個測試用例的n件物品的重量,中間用空格分開。

………

第2m行:第m個測試用例的s值。

第2m+1行:第m個測試用例的物品數量n。

第2m+2行:第m個測試用例n件物品的重量,中間用空格分開。

數據輸出t:

第壹行到第m行:分別輸出是否成功,如果可以放入和為s的物品,則輸出1,否則輸出0。

示例:

輸入文件input13.txt:

2

21

5

2 5 9 11 13

13

4

2 3 5 8

輸出:(標準輸出)

0

1

10. 用遞歸算法實現折半查找問題。

數據輸入:

第壹行:測試集合個數m。

第二行:第壹個測試用例測試數據的個數n。

第三行:第壹個測試用例的要查找的s值。

第四行:第壹個測試用例的n個測試數據。

第五行:第二個測試用例測試數據的個數n。

第六行:第二個測試用例的s值。

第七行:第二個測試用例的n個測試數據。

………

第2m行:第m個測試用例測試數據的個數n。

第2m+1行:第m個測試用例的s值。

第2m+2行:第m個測試用例的n個測試數據。

數據輸出:

第壹行到第m行:分別輸出是否成功,如果能查到,則輸出查到的位置,否則輸出0。

示例:

輸入文件input14.txt:

2

5

3

2 3 5 9 11

5

4

2 3 5 9 11

輸出:(標準輸出)

2

0

11. 根據輸入重構壹個二叉樹,輸出按不同順序遍歷的節點序列

數據輸入:

第壹行是壹個整數N(1<=N<=20),表示有多少個測試例子,以下每行是壹個測試例子。每個測試例子第壹個是壹個整數M,表示輸出的遍歷順序,其中M=0,表示前序;M=1,表示中序;M=2,表示後序。然後是壹個字符序列,字符序列由A-Z和#表示,A-Z表示節點,#表示空。如果字符所在字符串的位置為i(i為正整數,位置從1開始計數),則位置為i*2,i*2+1的節點為它的子節點。如果i*2,i*2+1超過字符串長度,表示子節點為空。

數據輸出:

每行輸出壹個例子的結果。壹個字符串,中間無空格。

示例:

輸入文件名:input16.txt

2

0 AB#CD######EF

1 AB#CD######EF

輸出:(標準輸出)

ABCDEF

CBEDFA

12. 根據輸入的二叉樹前序和中序遍歷序列重構二叉樹,輸出對應節點的左右子節點。

數據輸入:

第壹行是壹個整數N(1<=N<=20),表示有多少個測試例子。以下每個測試例子的第壹行是本測試例子的二叉樹的前序遍歷,第二行是中序遍歷,第三行首先是壹個整數M,表示要求輸出結果的數目,以後有M個節點,每個中間由壹個空格隔開。

數據輸出:

每行輸出壹個例子的所有結果,如果其子節點為空則輸出字符#,同壹例子的不同節點的輸出結果之間用壹個空格隔開

示例:

輸入文件名:input17.txt

1

ABCDEF

CBEDFA

3 A B C

輸出:(標準輸出)

B# CD ##

  • 上一篇:VB實現ACCESS數據庫記錄的查詢,新增,刪除,修改
  • 下一篇:計算機類的專業
  • copyright 2024編程學習大全網