資料結構與演算法作業

2022-09-17 22:48:03 字數 3707 閱讀 5305

說明:1、題號形式: 每題都以【sn,cha,sec】開頭,sn表明本題的題目序號,每道題都有唯一的序號;cha表示內容所在的章;sec表示內容所在的節。

如 【17,2,1】表示序號17的題來自第2章第1節。

2、題型: 1)填空題:1-80

2)分析計算作圖題:序號1-30題(選自《資料結構題集》—嚴蔚敏等編)

3、內容取捨:根據本學期上課課件中的內容,未上課章節的練習可捨棄。

4、必做題或選做題:第四章和第五章不考,所以可以選做。

1) 填空題:序號1-80題

【1,1,2】線性結構中元素之間存在一對一關係,樹形結構中元素之間存在

一對多關係,圖形結構中元素之間存在多對多關係。

【2,1,2】為了最快地訪問資料元素,物理結構宜採用線性結構結構。

【3,1,2】資料結構的三要素是資料 , 資料元素 , 資料物件 。

【4,1,2】資料的邏輯結構可形式地用乙個二元組b=(k,r)來表示,其中k是資料元素的有限集__,r是 k上關係的有限集___。

【5,1,2】儲存結構可根據資料元素在機器中的位置是否一定連續分為順序儲存結構__, 鏈式儲存結構 ___。

【6,1,4】度量演算法效率可通過依據該演算法在編制的程式在計算機上執行時所消耗的時間__來進行。

【7,1,4】演算法的五個重要特性是確定性、 有窮性 、 可行性 、輸入和輸出。

【8,1,4】設n為正整數,則下面程式段的時間複雜度是 t(n)=o(n)__。

i=1;k=0;

while(i

【9,1,4】設n 為正整數,下面程式段中前置以記號@的語句的頻度是

for (i=0; i for (j=0; jif (i+j==n-1)

@ a[i][j]=0;

}【10,1,4】設n 為正整數,試確定下列各程式段中前置以記號@的語句的頻度:

(1) i=1; k=0;

while (i<=n-1)

(2) k=0;

for (i=1;i<=n;i++)

【11,1,4】按增長率由大到小排列下列函式的結果是

log2 (log2 n), n log2 n, n2, n1/2, log2 n, n

【12,2,1】當線性表的規模比較大,難以估計其儲存規模時,一般以採用檔案的儲存結構為好。

【13,2,1】線性表(a1,a2,…,an)有兩種儲存結構: 順序儲存結構和鏈式儲存結構,請就這兩種儲存結構完成下列填充:

__順序儲存_ 儲存密度較大;__鏈式儲存__儲存利用率較高;__鏈式儲存__可以隨機訪問;__順序儲存___不可以隨機訪問;

__鏈式儲存__插入和刪除操作比較方便。

【14,2,2】從乙個長度為n的順序表中刪除第i個元素(1≤i≤n)時,需向前移動 n-i 個元素。

【15,2,3】帶頭結點的雙鏈表l為空的條件是 l->next=l 。

【16,2,3】帶頭結點的單鏈表head為空的條件是____ head→next==null ______。

【17,2,3】非空單迴圈鍊錶l中*p是尾結點的條件是____ p!=null

【18,2,3】在乙個單鏈表中p所指結點(p所指不是最後結點)之後插入乙個由指標s所指結點,應執行s->next=__p->next ___;和p->next=___ s____的操作。

【19,2,3】在乙個單鏈表中的指標p所指結點之前插入乙個由指標s所指結點,可執行以下操作序列:

s->next= p->next____;

p->next=s;

t=p->data;

p->data=___ s->data_____;

s->data=t;

【20,2,3】在乙個單鏈表中刪除p所指結點時,應執行以下操作:

q= p->next;

p->data= p->next->data;

p->next= q->next_ ;

free(q);

【21,2,3】在單鏈表中,刪除指標p所指結點的後繼結點的語句是p-> next; p-> next=p-> next-> next; __。

【22,2,3】帶頭結點的單迴圈鍊錶head的判空條件是__head->null___; 不帶頭結點的單迴圈鍊錶的判空條件是___②__。

【23,2,3】刪除帶頭結點的單迴圈鍊錶head的第乙個結點的操作是__①___;刪除不帶頭結點的單迴圈鍊錶的第乙個結點的操作是__②___。

【24,2,3】已知l是帶表頭結點的非空單鏈表, 且p結點既然不首元結點,也不是尾元結點,試從下列提供的答案中選擇合適的語句序列。

a. 刪除p結點的直接前驅結點的語句序列是

b. 刪除結點p的語句序列是

c. 刪除尾元結點的語句序列是

(1) p = p->next;

(2) p->next = p;

(3) p->next = p->next ->next;

(4) p = p->next ->next;

(5) while (p != null) p = p->next;

(6) while (q->next != null);

(7) while (p->next != q) p = p->next;

(8) while (p->next->next != q) p = p->next;

(9) while (p->next->next != null) p = p->next;

(10) q = p;

(11) q = p->next;

(12) p = l;

(13) l = l->next;

(14) free (q);

【25,3,1】棧操作的原則是先進後出 。

【26,3,1】對乙個棧,給定輸入的順序是a、b、c,則全部不可能的輸出序列有 ① 。

【27,3,1】資料a、b、c、d依次進棧後,再從棧中取一資料,則它是 d 。則本棧得到dcba的輸出序列,其理由是先進後出,進入的順序是abcd則出來的順序為dcba 。

【28,3,1】.在棧頂指標為hs的鏈棧中,判定棧空的條件是        。

【29,3,1】將遞迴演算法改寫成等價的非遞迴演算法,通常應該設定 ① 的資料結構

【30,3,2】下列程式把十進位制數轉換為十六進製制數,請填寫合適的語句成分。(每空2分)

void conversion10_16()

while(!stackempty(s))

} /* conversion */

【31,3,4】若乙個棧的輸入序列為1,2,3,…,n,輸出序列的第乙個元素為n,則第i個輸出元素是 n-i+1 。

【32,3,4】若用乙個大小為6個元素的陣列來實現迴圈佇列,且當前rear=0和front=3。當從佇列中刪除乙個元素,再加入兩個元素後,rear和front的值分別是 ① 和 ② 。

【33,3,4】已知乙個棧的輸入序列為1,2,3,…,n,輸出序列為a1,a2,a3,…,an,那麼a2=n的輸出序列共有 0 種。

【34,3,4】堆疊和佇列都是線性表, 堆疊是____一種先進後出的線性表____的線性表, 而佇列是__是一種先進先出的的線性表。

【35,3,4】從迴圈佇列中刪除乙個元素時,其操作是

【36,3,4】若用乙個大小為6個元素的陣列來實現迴圈佇列,且當前rear=0和front=3。當從佇列中刪除乙個元素,再加入兩個元素後,rear和front的值分別是和

演算法與資料結構

演算法 是按部就班地解決某個問題的方法,是對特定問題求解步驟的一種描述。偽碼語言是一種包括高階程式語言的3種基本控制結構 順序 選擇和迴圈 和自然語言成分的 物件導向 的語言。演算法的特徵 1 可行性 一是演算法中的每個步驟必須是能實現的 二是演算法執行的結果要能達到預期的目的。2 確定性 演算法的...

資料結構與演算法

課程設計報告 目錄一 問題描述1 二 資料結構1 三 演算法設計思想及流程圖1 四 源程式2 五 測試情況6 參考文獻6 一 問題描述 計算表示式的值 問題描述 對於給定的乙個表示式,表示式中可以包括常數 算術執行符和括號,編寫程式計算表示式的值。基本要求 從鍵盤輸入乙個正確的中綴表示式,將中綴表示...

201309學期演算法與資料結構作業

a i 1 j 1 k b i 1 j 1 k c i 1 j k d i j 1 k 答案 a 第6題資料結構中的資料是指 a 用於計算的數字 b 資訊 c 磁碟 d 計算機的處理物件 答案 d 第7題資料結構中的資料和存貯介質 如磁碟 的關係是 a 資料是存貯介質 b 存貯介質是資料的載體 c ...