全國計算機四級考試 第2章線性表習題練習

2021-12-30 07:05:09 字數 1302 閱讀 4217

一、基礎知識題

2.1 試描述頭指標、頭結點、開始結點的區別、並說明頭指標和頭結點的作用。

2.2 何時選用順序表、何時選用鍊錶作為線性表的結構為宜?

2.3 在順序表中插入和刪除乙個結點需平均移動多少個結點?具體的移動次數取決於哪兩個因素?

2.4 為什麼在單迴圈鍊錶中設定尾指標比設定頭指標更好?

2.5 在單鏈表、雙鏈表和單迴圈鍊錶中,若僅知道指標p指向某結點,不知道頭指標,能否將結點p從相應的鍊錶中刪去?若可以,其時間複雜度各為多少?

2.6 下述演算法的功能是什麼?

linklist demo

return l;

}// demo

二、演算法設計題

2.7 設線性表的n個結點定義為,重寫順序表上實現的插入和刪除演算法:insertlist 和deletelist。

2.8 試分別用順序表和單鏈表作為儲存結構,實現將線性表就地逆置的操作,所謂「就地」指輔助空間應為o。

2.9 設順序表l是乙個遞增有序表,試寫一演算法,將x插入l中,並使l仍是乙個有序表。

2.10 設順序表l是乙個遞減有序表,試寫一演算法,將x插入其後仍保持l的有序性。

2.11寫一演算法在單鏈表上實現線性表的listlength運算。

2.12 已知l1和l2分別指向兩個單鏈表的頭結點,且已知其長度分別為m和n。試寫一演算法將這兩個鍊錶連線在一起,請分析你的演算法的時間複雜度。

2.13 設 a和b是兩個單鏈表,其表中元素遞增有序。試寫一演算法將a和b歸併成乙個按元素值遞減有序的單鏈表c,並要求輔助空間為o,請分析演算法的時間複雜度。

2.14 已知單鏈表l是乙個遞增有序表,試寫一高效演算法,刪除表中值大於min 且小於max的結點,同時釋放被刪結點的空間,這裡min 和 max是兩個給定的引數。請分析你的演算法的時間複雜度。

2.15 寫一演算法將單鏈表中值重複的結點刪除,使所得的結果表中各結點值均不相同。

2.16 假設在長度大於1的單迴圈鍊錶中,既無頭結點也無頭指標。s為指向鍊錶中某個結點的指標,試編寫演算法刪除結點s的直接前趨結點。

2.17 已知由單鏈表表示的線性表中,含有三類字元的資料元素,試編寫演算法構造三個以迴圈鍊錶表示的線性表,使每個表中只含同一類的字元,且利用原表中的結點空間作為這三個表的結點空間,頭結點可另闢空間。

2.18 設有乙個雙鏈表,每個結點中除有prior、data和next三個域外,還有乙個訪問頻度域freq,在鍊錶被起用之前,其值均初始化為零。每當在鍊錶進行一次locatenode運算時,令元素值為x的結點中freq域的值加1,並調整表中結點的次序,使其按訪問頻度的遞減序排列,以便使頻繁訪問的結點總是靠近表頭。試寫一符合上述要求的locatenode運算的演算法。

全國計算機等級考試四級考試模擬試題

一 選擇題 共70 題,每題1 分,滿分70 分。其中1 55 題為中文題,56 70 題為英文題 下列各題a b c d 四個選項中,只有乙個是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。1 若乙個子程式起始位址為3k,呼叫指令call 的記憶體位址為k 1,則執行call 指令...

全國計算機四級考試 MySQL程式設計介紹

mysql有一組實用程式。例如,mysqldump 匯出表的上下文和結構定義,mysqlimport將資料檔案載入到表中,mysqladmin 實現管理w操作,mysql可以使使用者與伺服器互動來執行任意的查詢。每個標準的mysql實用程式都傾向於小巧,重點放在程式可完成特定的 有限的功能。即使my...

全國計算機等級考試四級考試經驗之談

堅定的信心自學計算機是需要一定的條件的,現在回想起來,我當時的條件不算好 第一,沒有基礎。大專學的是中文,而且完全沒有接觸過電腦,對計算機沒有一點感性認識,甚至不知道學電腦要學些什麼 第二,環境很閉塞。畢業後在乙個偏僻的小鎮教書,身邊沒有人懂電腦,有了疑問沒有人能幫自己解決 第三,缺少硬體條件。開始...