數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)測(cè)試有答案_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)測(cè)試有答案_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)測(cè)試有答案_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)測(cè)試有答案_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)測(cè)試有答案_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第頁(yè)數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)測(cè)試有答案1.如果在一個(gè)排序算法的執(zhí)行過程中,沒有同一對(duì)元素被比較過兩次或以上,則稱該排序算法為節(jié)儉排序算法,以下算法中是節(jié)儉排序算法的有()。A、直接插入排序B、簡(jiǎn)單選擇排序C、堆排序D、所有選項(xiàng)都不對(duì)【正確答案】:A解析:

根據(jù)題目所描述的定義,如果在一個(gè)排序算法的執(zhí)行過程中,沒有同一對(duì)元素被比較過兩次或以上,則該排序算法可以被稱為節(jié)儉排序算法。在提供的選項(xiàng)中,直接插入排序算法滿足這個(gè)要求,因?yàn)樗鼘⒋判虻脑刂饌€(gè)插入已經(jīng)排好序的序列中,每個(gè)元素僅與前面有序序列中的元素進(jìn)行比較。不會(huì)出現(xiàn)同一對(duì)元素被比較多次的情況。而簡(jiǎn)單選擇排序和堆排序是分別通過選擇最?。ù螅┰睾徒⒍褋?lái)進(jìn)行排序的算法,這些算法在每輪比較中都會(huì)涉及詳情情況全部的元素,所以不符合節(jié)儉排序算法的定義。因此,正確答案是選項(xiàng)A,即直接插入排序。2.在一棵m階B樹中插入一個(gè)關(guān)鍵字會(huì)引起分裂,則該結(jié)點(diǎn)原有()個(gè)關(guān)鍵字。A、1B、mC、m-1D、m/2【正確答案】:C解析:

在一棵m階B樹中,每個(gè)非根內(nèi)部結(jié)點(diǎn)至少有m/2個(gè)子結(jié)點(diǎn)(m為奇數(shù)時(shí)要取下整),至多有m個(gè)子結(jié)點(diǎn)。當(dāng)插入一個(gè)關(guān)鍵字導(dǎo)致分裂時(shí),意味著該結(jié)點(diǎn)已滿,即存在m個(gè)關(guān)鍵字。因此,在分裂前,該結(jié)點(diǎn)原本有m-1個(gè)關(guān)鍵字。選項(xiàng)C中的m-1是正確的答案。3.設(shè)n個(gè)元素進(jìn)棧序列是1、2、3、…、n,其輸出序列是p1、p2、…、pn,若p1=3,則p2的值為()。A、一定是2B、一定是1C、不可能是1D、以上都不對(duì)【正確答案】:C解析:

根據(jù)題目描述,元素1被推入棧之后,元素2才能被推入棧,所以在輸出序列中,p2的值一定是2。因此,選項(xiàng)A“一定是2”是正確的答案。而題目給出的答案選擇C“不可能是1”是錯(cuò)誤的。4.設(shè)有一棵哈夫曼樹的結(jié)點(diǎn)總數(shù)為35,則該哈夫曼樹共有()個(gè)葉子結(jié)點(diǎn)。A、18B、20C、35D、30【正確答案】:A解析:

哈夫曼樹是一種用于數(shù)據(jù)壓縮的二叉樹,其特點(diǎn)是帶權(quán)路徑長(zhǎng)度最短。對(duì)于一棵哈夫曼樹而言,其葉子結(jié)點(diǎn)的數(shù)量等于待編碼的字符或符號(hào)的數(shù)量。題目給出了該哈夫曼樹的結(jié)點(diǎn)總數(shù)為35個(gè),因此理想情況下,該哈夫曼樹應(yīng)該有35個(gè)葉子結(jié)點(diǎn)。然而,選項(xiàng)A:18是錯(cuò)誤的答案,因?yàn)樗o出的葉子結(jié)點(diǎn)數(shù)量低于哈夫曼樹的結(jié)點(diǎn)總數(shù)。正確答案應(yīng)為:C.355.靜態(tài)查找表和動(dòng)態(tài)查找表的區(qū)別是()。A、它們的邏輯結(jié)構(gòu)相同B、施加其上的操作不同C、所包含的數(shù)據(jù)元素的類型不同D、存儲(chǔ)實(shí)現(xiàn)不同【正確答案】:B解析:

靜態(tài)查找表和動(dòng)態(tài)查找表是數(shù)據(jù)結(jié)構(gòu)中常用的兩種查找表形式。靜態(tài)查找表是指在表創(chuàng)建后,元素不再發(fā)生改變的查找表。例如,一個(gè)排序好的數(shù)組就是一種靜態(tài)查找表。它一旦創(chuàng)建,就無(wú)法再插入或刪除元素。這種表需要在設(shè)計(jì)時(shí)考慮查詢操作的快速性能。動(dòng)態(tài)查找表是指可以對(duì)表進(jìn)行動(dòng)態(tài)地插入和刪除操作的查找表。二叉搜索樹和哈希表等數(shù)據(jù)結(jié)構(gòu)就屬于動(dòng)態(tài)查找表。這種表適用于頻繁地插入、刪除和搜索元素的場(chǎng)景,需要靈活的數(shù)據(jù)結(jié)構(gòu)來(lái)滿足各種操作的需求。因此,選項(xiàng)B是正確答案,靜態(tài)查找表和動(dòng)態(tài)查找表區(qū)別在于施加其上的操作不同。6.對(duì)于棧操作數(shù)據(jù)的原則是()。A、先進(jìn)先出B、后進(jìn)先出C、后進(jìn)后出D、不分順序【正確答案】:B解析:

對(duì)于棧這種數(shù)據(jù)結(jié)構(gòu),操作數(shù)據(jù)的原則是后進(jìn)先出(LastInFirstOut,LIFO)。也就是說(shuō),最后壓入棧中的數(shù)據(jù)會(huì)被第一個(gè)彈出。因此,答案選項(xiàng)B“后進(jìn)先出”是正確的。7.若一個(gè)有向圖中的頂點(diǎn)不能排成一個(gè)拓?fù)湫蛄?,則可斷定該有向圖()。A、是個(gè)有根有向圖B、是個(gè)強(qiáng)連通圖C、含有多個(gè)入度為0的頂點(diǎn)D、含有頂點(diǎn)數(shù)目大于1的強(qiáng)連通分量【正確答案】:D解析:

在一個(gè)有向圖中,如果存在一個(gè)頂點(diǎn)無(wú)法排列成拓?fù)湫蛄?,那么可以斷定該有向圖含有頂點(diǎn)數(shù)目大于1的強(qiáng)連通分量。強(qiáng)連通分量指的是在該分量?jī)?nèi),從任意一個(gè)頂點(diǎn)都能夠通過有向路徑到達(dá)其他任意頂點(diǎn),并且不能再添加新的頂點(diǎn)進(jìn)入其中。因此,選項(xiàng)D是正確的答案。選項(xiàng)A是不準(zhǔn)確的,因?yàn)檫@里沒有提到根;選項(xiàng)B和選項(xiàng)C也不能直接斷定,只有選擇D才是基于題干內(nèi)容的正確答案。8.設(shè)棧的輸入序列是1、2、3、4,則()不可能是其出棧序列。A、1、2、4、3B、2、1、3、4C、4、3、1、2,D、3、2、1、4【正確答案】:C解析:

這道題目考查的是對(duì)棧的進(jìn)出操作及出棧序列的理解。根據(jù)棧先進(jìn)后出的特點(diǎn),當(dāng)某個(gè)元素后入棧后,必須在它之前的所有元素都出棧后才能出棧。對(duì)于輸入序列1、2、3、4,按照棧的規(guī)則,出棧序列不能出現(xiàn)以下情況:A.1、2、4、3:符合棧的出棧規(guī)則,可以是其出棧序列。B.2、1、3、4:符合棧的出棧規(guī)則,可以是其出棧序列。C.4、3、1、2:在1之前還有未出棧的元素,違反了棧的出棧規(guī)則,不可能是其出棧序列。D.3、2、1、4:符合棧的出棧規(guī)則,可以是其出棧序列。因此,不可能是該輸入序列的出棧序列的選項(xiàng)是C。9.若元素a、b、c、d、e、f依次進(jìn)棧,允許進(jìn)棧、退棧的操作交替進(jìn)行,但不允許連續(xù)3次退棧工作,則不可能得到的出棧序列是()。A、dcebfaB、cbdaefC、bcaefdD、afedcb【正確答案】:D解析:

這道題目涉及到棧的進(jìn)棧和出棧操作。給定元素a、b、c、d、e、f,要求選擇一個(gè)不可能得到的出棧序列。在進(jìn)行出棧操作時(shí),要遵循一定的規(guī)則,即不允許連續(xù)3次退棧。通過分析選項(xiàng)。選項(xiàng)A:dcebfa,對(duì)于該序列,可以按照以下過程完成出棧操作:d出棧,c出棧,e出棧,b出棧,f出棧,a出棧。滿足退棧規(guī)則。選項(xiàng)B:cbdaef,對(duì)于該序列,可以按照以下過程完成出棧操作:c出棧,b出棧,d出棧,a出棧,e出棧,f出棧。滿足退棧規(guī)則。選項(xiàng)C:bcaefd,對(duì)于該序列,可以按照以下過程完成出棧操作:b出棧,c出棧,a出棧,e出棧,f出棧,d出棧。滿足退棧規(guī)則。選項(xiàng)D:afedcb,對(duì)于該序列,在進(jìn)行f出棧,e出棧,d出棧之后,不存在其他合法的出棧操作了,不滿足退棧規(guī)則。因此,選項(xiàng)D.afedcb是不可能得到的出棧序列,是答案。10.一個(gè)表示工程的AOE網(wǎng)中的關(guān)鍵路徑()。A、必須是唯一的B、可以有多條C、可以沒有D、以上都不對(duì)【正確答案】:B解析:

在一個(gè)表示工程的活動(dòng)優(yōu)先網(wǎng)絡(luò)(AOE網(wǎng))中,關(guān)鍵路徑是指完成整個(gè)工程所需時(shí)間最長(zhǎng)的路徑。它是由一系列緊密相連的活動(dòng)組成的,這些活動(dòng)的持續(xù)時(shí)間對(duì)于整個(gè)工程的完成時(shí)間起著至關(guān)重要的作用。根據(jù)定義,關(guān)鍵路徑并不必須是唯一的,因?yàn)榭赡艽嬖诙鄺l路徑上的活動(dòng)持續(xù)時(shí)間相同,都可以成為關(guān)鍵路徑。只要完成整個(gè)工程所需時(shí)間最長(zhǎng)的路徑均可被視為關(guān)鍵路徑。因此,正確答案是選項(xiàng)B,關(guān)鍵路徑可以有多條。11.()方法可以判斷一個(gè)有向圖是否存在回路。A、求最小生成樹B、拓?fù)渑判駽、求關(guān)鍵路徑D、求最短路徑【正確答案】:B解析:

拓?fù)渑判蚴且环N用于判斷有向圖是否存在回路的方法。如果一個(gè)有向圖中存在回路,則該圖無(wú)法通過拓?fù)渑判虻玫揭粋€(gè)正確的結(jié)果。因此,答案是B。拓?fù)渑判蛲ㄟ^按照一定的順序遍歷圖中的節(jié)點(diǎn),并根據(jù)每個(gè)節(jié)點(diǎn)的出邊判斷是否存在環(huán)路。如果有環(huán)路,則可以確定圖中存在回路。12.最不適合用作鏈隊(duì)的鏈表是()。A、只帶頭結(jié)點(diǎn)指針的非循環(huán)雙鏈表B、只帶隊(duì)首結(jié)點(diǎn)指針的循環(huán)雙鏈表C、只帶隊(duì)尾結(jié)點(diǎn)指針的循環(huán)雙鏈表D、以上都不適合【正確答案】:A解析:

在鏈隊(duì)中,為了方便操作,通常需要使用特定的鏈表結(jié)構(gòu)。對(duì)于鏈隊(duì)而言,由于需要隊(duì)首和隊(duì)尾指針,所以只帶頭結(jié)點(diǎn)指針的非循環(huán)雙鏈表是最不適合的鏈表結(jié)構(gòu)。因此,選項(xiàng)A是最不適合用作鏈隊(duì)的鏈表。13.n個(gè)頂點(diǎn)的連通圖的生成樹有()條邊。A、nB、n-1C、n+1D、不確定【正確答案】:B解析:

對(duì)于一個(gè)連通圖的生成樹,根據(jù)最小生成樹的性質(zhì),邊的數(shù)量應(yīng)該是頂點(diǎn)數(shù)減1(n-1)。因此,答案選項(xiàng)B是正確的。14.含有20個(gè)結(jié)點(diǎn)的AVL樹的最大高度是()。A、4B、5C、6D、7【正確答案】:C解析:

AVL樹是一種自平衡二叉搜索樹,在AVL樹中,插入或刪除節(jié)點(diǎn)后會(huì)進(jìn)行平衡操作以維持樹的平衡性。根據(jù)AVL樹的定義,每個(gè)節(jié)點(diǎn)的左子樹和右子樹的高度差(平衡因子)不超過1。當(dāng)AVL樹中有n個(gè)節(jié)點(diǎn)時(shí),最大高度H可以通過以下公式計(jì)算:H=log2(n+1)給定含有20個(gè)節(jié)點(diǎn)的情況下,將其代入公式中可得:H=log2(20+1)≈log2(21)≈4.392由于高度必須為整數(shù),最大高度為6(對(duì)應(yīng)選項(xiàng)C)。因此,選項(xiàng)C是正確答案。15.棧的“先進(jìn)后出”特性是指()。A、最后進(jìn)棧的元素總是最先出棧B、當(dāng)同時(shí)進(jìn)行進(jìn)棧和出棧操作時(shí),總是進(jìn)棧優(yōu)先C、每當(dāng)有出棧操作時(shí),總要先進(jìn)行一次進(jìn)棧操作D、每次出棧的元素總是最先進(jìn)棧的元素【正確答案】:A解析:

棧是一種數(shù)據(jù)結(jié)構(gòu),具有“先進(jìn)后出”(LastInFirstOut,簡(jiǎn)稱LIFO)的特性。這意味著最后進(jìn)入棧的元素總是第一個(gè)被移出棧的元素。這是因?yàn)闂J呛笕霔5脑卦谇俺鰲r(shí)被處理,這與“先進(jìn)后出”的定義相符。因此,選項(xiàng)A是正確的答案。16.給定一個(gè)足夠大的空棧,有4個(gè)元素的進(jìn)棧次序?yàn)锳、B、C、D,則以C、D開頭的出棧序列的個(gè)數(shù)為()。A、1B、2C、3D、4【正確答案】:A解析:

根據(jù)棧的特性,后進(jìn)先出原則,給定的進(jìn)棧次序?yàn)锳、B、C、D,那么以C、D開頭的出棧序列只有一種情況。首先,元素D應(yīng)該要先出棧,然后是C,再是A,最后是B。也就是DCAB的出棧序列。因此,選項(xiàng)A是正確的答案。17.一個(gè)遞歸定義可以用遞歸算法求解,也可以用非遞歸算法求解。但單從執(zhí)行時(shí)間來(lái)看,通常遞歸算法比非遞歸算法()。A、較快B、較慢C、相同D、無(wú)法比較【正確答案】:B解析:

通常情況下,遞歸算法的執(zhí)行時(shí)間較慢,因?yàn)樗枰粩嗟刂貜?fù)執(zhí)行基本步驟并逐步調(diào)用自己來(lái)解決問題。而非遞歸算法可以通過存儲(chǔ)和復(fù)用已計(jì)算的中間結(jié)果來(lái)提高效率。因此,正確答案是B,遞歸算法通常比非遞歸算法較慢。18.數(shù)據(jù)結(jié)構(gòu)是指()。A、一種數(shù)據(jù)類型B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C、一組性質(zhì)相同的數(shù)據(jù)元素的集合D、相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合【正確答案】:D解析:

數(shù)據(jù)結(jié)構(gòu)是指相互之間存在特定關(guān)系的數(shù)據(jù)元素的集合,即選項(xiàng)D。19.在一個(gè)無(wú)向圖中,所有頂點(diǎn)的度之和等于邊數(shù)的()倍。A、44198B、1C、2D、4【正確答案】:C解析:

對(duì)于一個(gè)無(wú)向圖,所有頂點(diǎn)的度之和等于邊數(shù)的2倍。這是因?yàn)槊織l邊都會(huì)增加兩個(gè)頂點(diǎn)的度數(shù),所以所有頂點(diǎn)的度之和必然是邊數(shù)的2倍。因此,選項(xiàng)C是正確的答案。20.設(shè)線性表中有n個(gè)元素,以下運(yùn)算中()在單鏈表上實(shí)現(xiàn)要比在順序表上實(shí)現(xiàn)效率更高。A、刪除指定地址(位置)元素的后一個(gè)元素B、在最后一個(gè)元素的后面插入一個(gè)新元素C、順序輸出前k個(gè)元素D、交換第i個(gè)元素和第n-i+1個(gè)元素的值(i=1,2,…,n)【正確答案】:A解析:

對(duì)于該題目中的不同操作,我們來(lái)進(jìn)行分析:A.刪除指定地址(位置)元素的后一個(gè)元素:在單鏈表上實(shí)現(xiàn)相對(duì)更高效。由于單鏈表的結(jié)構(gòu)特點(diǎn),刪除操作只需要改變相鄰節(jié)點(diǎn)的指針鏈接即可;而順序表則需要移動(dòng)后續(xù)元素,可能需要大量的數(shù)據(jù)遷移操作。B.在最后一個(gè)元素的后面插入一個(gè)新元素:在順序表上實(shí)現(xiàn)相對(duì)更高效。順序表可以直接通過修改內(nèi)存地址實(shí)現(xiàn)插入操作,時(shí)間復(fù)雜度為O(1);而對(duì)于單鏈表,需要遍歷找到最后一個(gè)元素,然后才能進(jìn)行插入操作,時(shí)間復(fù)雜度為O(n)。C.順序輸出前k個(gè)元素:在順序表上實(shí)現(xiàn)相對(duì)更高效。順序表的元素是連續(xù)存儲(chǔ)的,可以通過簡(jiǎn)單的循環(huán)實(shí)現(xiàn)順序輸出;而單鏈表需要對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行遍歷訪問。D.交換第i個(gè)元素和第n-i+1個(gè)元素的值:在兩種結(jié)構(gòu)下實(shí)現(xiàn)效率差異并不顯著。無(wú)論是單鏈表還是順序表,都可以通過指針或索引訪問相應(yīng)位置的元素進(jìn)行交換。綜上所述,答案中選項(xiàng)A是正確的,刪除指定地址(位置)元素的后一個(gè)元素在單鏈表上實(shí)現(xiàn)更高效。21.一個(gè)關(guān)鍵字序列為(12,38,35,25,74,50,63,90),按二路歸并排序方法對(duì)序列進(jìn)行一趟歸并后的結(jié)果為()。A、12,38,35,25,74,50,63,90B、12,38,25,35,50,74,63,90C、12,25,35,38,50,74,63,90D、12,35,38,25,63,50,74,90【正確答案】:B解析:

二路歸并排序是一種分治策略的排序算法,通過將序列劃分為較小的子序列,并最終將這些子序列合并為一個(gè)有序的序列。在一趟歸并中,首先將序列劃分為兩個(gè)子序列:(12,38,35,25)和(74,50,63,90)。然后將兩個(gè)子序列進(jìn)行合并排序,得到(12,38,25,35,50,74,63,90)。因此,選項(xiàng)B是按照二路歸并排序方法對(duì)序列進(jìn)行一趟歸并后的正確結(jié)果。22.關(guān)于線性表的正確說(shuō)法是()。A、每個(gè)元素都有一個(gè)前趨和一個(gè)后繼元素B、線性表中至少有一個(gè)元素C、表中元素的排序順序必須是由小到大或由大到小D、除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素有且僅有一個(gè)前趨和一個(gè)后繼元素【正確答案】:D解析:

線性表是一種基本的數(shù)據(jù)結(jié)構(gòu),其特點(diǎn)是數(shù)據(jù)元素之間存在著一對(duì)一的前驅(qū)和后繼關(guān)系。根據(jù)定義和常見的描述,在給定的選項(xiàng)中:A選項(xiàng)不準(zhǔn)確,因?yàn)椴⒎敲總€(gè)元素都有一個(gè)前趨和一個(gè)后繼元素,例如線性表中的第一個(gè)元素沒有前趨元素,最后一個(gè)元素沒有后繼元素。B選項(xiàng)不準(zhǔn)確,因?yàn)榫€性表可以為空。C選項(xiàng)不準(zhǔn)確,排序順序并非線性表的必要特征。D選項(xiàng)正確,每個(gè)元素(除了第一個(gè)和最后一個(gè))只有一個(gè)前趨元素和一個(gè)后繼元素,符合線性表的定義。因此,正確答案是選項(xiàng)D。23.以下關(guān)于二叉樹的說(shuō)法中正確的是()。A、二叉樹中每個(gè)結(jié)點(diǎn)的度均為2B、二叉樹中至少有一個(gè)結(jié)點(diǎn)的度為2C、二叉樹中每個(gè)結(jié)點(diǎn)的度可以小于2D、二叉樹中至少有一個(gè)結(jié)點(diǎn)【正確答案】:C解析:

對(duì)于二叉樹的定義而言,每個(gè)節(jié)點(diǎn)的度(子樹個(gè)數(shù))最多可以為2,而不是必須為2。因此,選項(xiàng)C"二叉樹中每個(gè)結(jié)點(diǎn)的度可以小于2"是正確的說(shuō)法。選項(xiàng)A中的說(shuō)法是不正確的,因?yàn)椴⒎撬卸鏄涞墓?jié)點(diǎn)都具有度為2的特性。選項(xiàng)B和選項(xiàng)D中的說(shuō)法也是不正確的,因?yàn)榭梢源嬖诠?jié)點(diǎn)的度為0或1的二叉樹。因此,正確答案是C。24.設(shè)目標(biāo)串為s,模式串為t,在KMP模式匹配中,next[4]=2的含義是()。A、表示t4字符前面最多有2個(gè)字符和開頭的2個(gè)字符相同B、表示s4字符前面最多有2個(gè)字符和開頭的2個(gè)字符相同C、表示目標(biāo)串匹配失敗的位置是i=4D、表示模式串匹配失敗的位置是j=2【正確答案】:A解析:

KMP模式匹配算法中的`next`數(shù)組記錄了模式串與目標(biāo)串匹配過程中失配時(shí)應(yīng)該回溯的位置。根據(jù)算法中的計(jì)算規(guī)則,`next[i]`的含義是模式串的第i個(gè)字符之前(不包括第i個(gè)字符)最大長(zhǎng)度的相同前綴后綴的長(zhǎng)度。因此,在題目中,`next[4]=2`的含義是模式串t的第4個(gè)字符之前(即字符t[3])最多有2個(gè)字符與開頭的2個(gè)字符相同。選項(xiàng)A正確描述了這個(gè)含義。因此,選項(xiàng)A是題目的正確答案。25.設(shè)一個(gè)棧的輸入序列為A、B、C、D,則借助一個(gè)棧所得到的輸出序列不可能是()。A,B,C,DB、D,C,B,AC、A,C,D,BD,A,B,C【正確答案】:D解析:

以A、B、C、D作為初始輸入序列,通過棧的操作,可以按照后進(jìn)先出的原則得到不同的輸出序列。在選項(xiàng)A、B和C中,各個(gè)元素的順序可以滿足棧的特點(diǎn),而選項(xiàng)D中的輸出序列D、A、B、C不符合后進(jìn)先出的規(guī)則。因此,答案D是正確的,所得到的輸出序列不可能是D、A、B、C。26.圖的遍歷是指()。A、訪問圖的所有頂點(diǎn)B、以某種次序訪問圖的所有頂點(diǎn)C、從一個(gè)頂點(diǎn)出發(fā)訪問圖中所有頂點(diǎn)且每個(gè)頂點(diǎn)只能訪問一次D、從一個(gè)頂點(diǎn)出發(fā)訪問圖中所有頂點(diǎn)但每個(gè)頂點(diǎn)可以訪問多次【正確答案】:C解析:

圖的遍歷是一種通過訪問圖中的頂點(diǎn)和邊來(lái)獲取圖內(nèi)數(shù)據(jù)的過程。在進(jìn)行圖的遍歷時(shí),可以有不同的策略和順序。根據(jù)題目所給選項(xiàng),正確的描述應(yīng)為選項(xiàng)C,即從一個(gè)頂點(diǎn)出發(fā)訪問圖中所有頂點(diǎn)且每個(gè)頂點(diǎn)只能訪問一次。這意味著,在遍歷圖的過程中,每個(gè)頂點(diǎn)只能被訪問一次,并盡可能覆蓋到圖中的所有頂點(diǎn)。因此,選項(xiàng)C是正確的答案。27.一個(gè)對(duì)稱矩陣A[1..10,1..10]采用壓縮存儲(chǔ)方式,將其上三角+主對(duì)角部分元素按行優(yōu)先存儲(chǔ)到一維數(shù)組B[0..m]中,則A[5][8]元素在B中的位置k是()。A、10B、37C、45D、60【正確答案】:B解析:

題目要求根據(jù)對(duì)稱矩陣A的壓縮存儲(chǔ)方式,將其上三角+主對(duì)角部分元素按行優(yōu)先存儲(chǔ)到一維數(shù)組B中。假設(shè)原始矩陣A的大小為N*N,則在B中:第一行存儲(chǔ)A[1][1]第二行存儲(chǔ)A[1][2]、A[2][2]第三行存儲(chǔ)A[1][3]、A[2][3]、A[3][3]...以此類推,第k行存儲(chǔ)A[1][k]、A[2][k]、...、A[k][k]由該表示方法可知,第i行開始的元素?cái)?shù)量為i個(gè)(0<=i<N),即第1行有1個(gè)元素,第2行有2個(gè)元素,...,第N行有N個(gè)元素。根據(jù)給定的題意,A[5][8]元素的位置可以通過上述規(guī)律進(jìn)行計(jì)算:前4行共有1+2+3+4=10個(gè)元素。第5行從B[10]位置開始存儲(chǔ),則A[5][8]元素在B中的位置k=10+8-5+1=14。因此,正確答案是選項(xiàng)B。28.以下不屬于存儲(chǔ)結(jié)構(gòu)是()。A、棧B、二叉鏈C、哈希表D、雙鏈表【正確答案】:A解析:

數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)組織和存儲(chǔ)數(shù)據(jù)的方式。其中,棧、二叉鏈、哈希表和雙鏈表都是常見的存儲(chǔ)結(jié)構(gòu)。棧是一種具有特定插入和刪除操作的數(shù)據(jù)結(jié)構(gòu),它遵循“后進(jìn)先出(LIFO)”的原則。二叉鏈?zhǔn)且环N表示二叉樹的數(shù)據(jù)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)包含兩個(gè)指向其左右子節(jié)點(diǎn)的指針。哈希表是通過將關(guān)鍵字映射到固定大小的數(shù)組中來(lái)存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu),它允許快速的查找和插入操作。雙鏈表是一種每個(gè)節(jié)點(diǎn)具有前驅(qū)和后繼指針的鏈?zhǔn)浇Y(jié)構(gòu),它可以支持雙向遍歷和插入刪除操作。因此,正確答案應(yīng)該是選項(xiàng)A,因?yàn)闂J且环N存儲(chǔ)結(jié)構(gòu)。其中每一個(gè)選項(xiàng)都屬于一種存儲(chǔ)結(jié)構(gòu)。29.順序查找法適合于存儲(chǔ)結(jié)構(gòu)為()的線性表。A、哈希存儲(chǔ)B、順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)C、壓縮存儲(chǔ)D、索引存儲(chǔ)【正確答案】:B解析:

順序查找法是一種簡(jiǎn)單直接的查找算法,它適用于各種存儲(chǔ)結(jié)構(gòu)的線性表。然而,對(duì)于不同的存儲(chǔ)結(jié)構(gòu),其查找效率可能會(huì)有所差異。根據(jù)答案選項(xiàng),哈希存儲(chǔ)和壓縮存儲(chǔ)都是特殊的存儲(chǔ)方式,并且不符合順序查找法的要求。索引存儲(chǔ)使用額外的索引結(jié)構(gòu)來(lái)提高查找效率,如果采用順序查找法,則不需要使用索引存儲(chǔ)。綜上所述,順序查找法適合于存儲(chǔ)結(jié)構(gòu)為順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)的線性表,所以選項(xiàng)B是正確答案。30.現(xiàn)有一“遺傳”關(guān)系,設(shè)x是y的父親,則x可以把他的屬性遺傳給y。表示該遺傳關(guān)系最適合的數(shù)據(jù)結(jié)構(gòu)為()。A、數(shù)組B、樹C、圖D、線性表【正確答案】:B解析:

根據(jù)題目描述,所提到的遺傳關(guān)系具有"父子"的屬性繼承關(guān)系。在這種情況下,最適合表示該遺傳關(guān)系的數(shù)據(jù)結(jié)構(gòu)是樹。樹的結(jié)構(gòu)可以很好地表示一個(gè)元素(父節(jié)點(diǎn))與其所擁有的屬性或其他相關(guān)元素(子節(jié)點(diǎn))之間的層次關(guān)系。父節(jié)點(diǎn)可以將其屬性遺傳給子節(jié)點(diǎn),而子節(jié)點(diǎn)也可以作為父節(jié)點(diǎn)傳遞給其他更低層的子節(jié)點(diǎn)。因此,選項(xiàng)B(樹)是符合要求的正確答案。數(shù)組、圖和線性表都不適合表示這種具有層次關(guān)系的遺傳關(guān)系。31.若串str="Software",其子串的數(shù)目是()。A、8B、9C、36D、37【正確答案】:D解析:

在給定的字符串中,有8個(gè)空格,所以子串的數(shù)量為8+7+6+...+2+1=37個(gè)。因此,答案是D。32.設(shè)有13個(gè)權(quán)值,用它們組成一棵哈夫曼樹,則該哈夫曼樹共有()個(gè)結(jié)點(diǎn)。A、13B、12C、26D、25【正確答案】:D解析:

根據(jù)哈夫曼樹的性質(zhì),該樹的葉子節(jié)點(diǎn)數(shù)量和權(quán)值的個(gè)數(shù)相同。所以在此題中,由于有13個(gè)權(quán)值,則哈夫曼樹的葉子節(jié)點(diǎn)數(shù)量也是13。另外,在一棵二叉樹中,總的節(jié)點(diǎn)數(shù)量等于葉子節(jié)點(diǎn)數(shù)量加上非葉子節(jié)點(diǎn)數(shù)量(根節(jié)點(diǎn)為非葉子節(jié)點(diǎn))。因此,該哈夫曼樹的節(jié)點(diǎn)數(shù)量為:13+12=25。所以,D選項(xiàng)是正確的答案。33.一個(gè)循環(huán)隊(duì)列中元素的排列順序()。A、與隊(duì)頭和隊(duì)尾指針的取值有關(guān)B、與元素值的大小有關(guān)C、由元素進(jìn)隊(duì)的先后順序確定D、與存放隊(duì)中元素的數(shù)組大小有關(guān)【正確答案】:C解析:

循環(huán)隊(duì)列是一種特殊的隊(duì)列,通過使用數(shù)組實(shí)現(xiàn)。在循環(huán)隊(duì)列中,元素的排列順序由元素進(jìn)隊(duì)的先后順序確定。即先入隊(duì)的元素位于隊(duì)列的前部,后入隊(duì)的元素位于隊(duì)列的后部。因此,正確答案是選項(xiàng)C。34.設(shè)一棵哈夫曼樹中有1999個(gè)結(jié)點(diǎn),該哈夫曼樹用于對(duì)()個(gè)字符進(jìn)行編碼。A、999B、998C、1000D、1001【正確答案】:C解析:

根據(jù)哈夫曼樹的性質(zhì),哈夫曼樹用于對(duì)n個(gè)字符進(jìn)行編碼時(shí),樹中的結(jié)點(diǎn)數(shù)會(huì)比字符數(shù)多一個(gè)。也就是說(shuō),如果有1999個(gè)結(jié)點(diǎn),則表示實(shí)際需要對(duì)1998個(gè)字符進(jìn)行編碼。因此,正確答案是選項(xiàng)C,編碼的字符數(shù)為1000。35.線索二叉樹中的線索是指()。A、左孩子B、右孩子C、指針D、標(biāo)識(shí)【正確答案】:C解析:

線索二叉樹是二叉樹的一種特殊表示方法,通過在二叉樹節(jié)點(diǎn)中添加額外的指針,將二叉樹的空指針指向前驅(qū)或后繼節(jié)點(diǎn),從而實(shí)現(xiàn)對(duì)二叉樹的遍歷操作的優(yōu)化。而這些額外的指針被稱為線索。因此,選項(xiàng)C中的指針是線索二叉樹中的線索。所以,選項(xiàng)C是正確的答案。36.若用鄰接矩陣存儲(chǔ)有向圖,矩陣中主對(duì)角線以下的元素均為零,則關(guān)于該圖拓?fù)湫蛄械慕Y(jié)論是()。A、存在,且唯一B、存在、且不唯一C、存在,可能不唯一D、無(wú)法確定是否存在【正確答案】:C解析:

在有向圖中,鄰接矩陣表示方法中,主對(duì)角線以下的元素為零通常表示存在逆向邊,因此無(wú)法唯一確定圖的拓?fù)湫蛄小5绢}中并未明確提到是否存在逆向邊,因此存在一定的可能性存在拓?fù)湫蛄小R虼?,正確答案是存在且可能不唯一。37.如果一個(gè)表既能較快地查找,又能適應(yīng)動(dòng)態(tài)變化的要求,則可采用()。A、有序表B、線性表C、哈希表D、二叉平衡樹【正確答案】:D解析:

對(duì)于要求既能較快地進(jìn)行查找,又能適應(yīng)動(dòng)態(tài)變化的場(chǎng)景,可以考慮使用二叉平衡樹。二叉平衡樹是一種特殊的二叉搜索樹,它通過在插入或刪除節(jié)點(diǎn)時(shí)調(diào)整樹的結(jié)構(gòu),保持樹的平衡性,從而使得查找操作的時(shí)間復(fù)雜度保持在O(logn)的級(jí)別。在二叉平衡樹中,每個(gè)節(jié)點(diǎn)都有一個(gè)以其為根節(jié)點(diǎn)的子樹的高度差不超過1,保證了整棵樹的平衡性。這樣一來(lái),在查找操作時(shí)仍然能保持較快的速度,同時(shí)在動(dòng)態(tài)變化時(shí)能夠自動(dòng)更新調(diào)整,使得整棵樹保持平衡。因此,選項(xiàng)D二叉平衡樹是適合該要求的數(shù)據(jù)結(jié)構(gòu)。38.用Dijkstra算法求一個(gè)帶權(quán)有向圖G中從頂點(diǎn)0出發(fā)的最短路徑,在算法執(zhí)行的某時(shí)刻,S={0,2,3,4},下一步選取的目標(biāo)頂點(diǎn)可能是()。A、頂點(diǎn)2B、頂點(diǎn)3C、頂點(diǎn)4D、頂點(diǎn)7【正確答案】:D解析:

在使用Dijkstra算法求最短路徑時(shí),我們需要根據(jù)當(dāng)前已經(jīng)確定的最短路徑來(lái)選擇下一個(gè)目標(biāo)頂點(diǎn)。這是通過比較起始頂點(diǎn)到其他未訪問頂點(diǎn)的距離來(lái)進(jìn)行的。根據(jù)題目給出的信息,當(dāng)前時(shí)刻已經(jīng)訪問了頂點(diǎn){0,2,3,4},那么下一步應(yīng)該選擇未訪問頂點(diǎn)中距離起始頂點(diǎn)最近的頂點(diǎn)作為目標(biāo)頂點(diǎn)。其中選項(xiàng)D.頂點(diǎn)7并不在待選頂點(diǎn)中,因此不符合條件。而在剩余的選項(xiàng)中,頂點(diǎn)2、3和4都是未訪問頂點(diǎn),并且距離起始頂點(diǎn)的距離都還未確定。所以,在這種情況下,下一步選取的目標(biāo)頂點(diǎn)可能是A.頂點(diǎn)2、B.頂點(diǎn)3或C.頂點(diǎn)4。因此,答案需要修正為:下一步選取的目標(biāo)頂點(diǎn)可能是A.頂點(diǎn)2、B.頂點(diǎn)3或C.頂點(diǎn)4。39.引入線索二叉樹的目的是()。A、加快查找結(jié)點(diǎn)的前趨或后繼結(jié)點(diǎn)的速度B、為了能在二叉樹中方便插入和刪除C、為了能方便找到雙親D、使二叉樹的遍歷結(jié)果唯一【正確答案】:A解析:

引入線索二叉樹的目的是加快查找結(jié)點(diǎn)的前趨或后繼結(jié)點(diǎn)的速度。線索二叉樹是一種通過修改二叉樹結(jié)點(diǎn)的空指針,將其指向該結(jié)點(diǎn)在中序遍歷順序下的前驅(qū)或后繼結(jié)點(diǎn)的方法。這樣,我們可以在O(1)的時(shí)間復(fù)雜度內(nèi)找到任意結(jié)點(diǎn)的前趨或后繼結(jié)點(diǎn),而不需要進(jìn)行遞歸或遍歷整個(gè)二叉樹。因此,選項(xiàng)A是正確的答案。40.正確的遞歸算法應(yīng)包含()。A、遞歸出口B、遞歸體C、遞歸出口和遞歸體D、以上都不包含【正確答案】:C解析:

在編寫正確的遞歸算法時(shí),通常需要包含兩個(gè)重要的組成部分:遞歸出口和遞歸體。遞歸出口是判斷遞歸結(jié)束的條件。在遞歸算法中,當(dāng)滿足遞歸出口的條件時(shí),遞歸將不再執(zhí)行,從而避免無(wú)限循環(huán)。遞歸體是遞歸算法中的主要操作部分,它描述了每次遞歸調(diào)用后所需執(zhí)行的步驟。通過遞歸體,問題被拆分為規(guī)模更小的子問題,并通過遞歸調(diào)用解決這些子問題。因此,一個(gè)正確的遞歸算法應(yīng)包含遞歸出口和遞歸體,即選項(xiàng)C為正確答案。41.一個(gè)稀疏矩陣采用壓縮后,和直接采用二維數(shù)組存儲(chǔ)相比會(huì)失去()特性。A、順序存儲(chǔ)B、隨機(jī)存取C、輸入輸出D、以上都不對(duì)【正確答案】:B解析:

稀疏矩陣是指其中元素大部分為0的矩陣。為了減少存儲(chǔ)空間的消耗,可以采用壓縮存儲(chǔ)方法。在壓縮存儲(chǔ)中,僅存儲(chǔ)非零元素的值以及對(duì)應(yīng)的行和列信息,而省去了多余的0元素的存儲(chǔ)。然而,通過壓縮存儲(chǔ)后,我們往往會(huì)失去隨機(jī)存取的特性。這是因?yàn)槭褂枚S數(shù)組進(jìn)行存儲(chǔ)時(shí),我們可以直接通過索引來(lái)隨機(jī)訪問矩陣中的任意元素,而在壓縮存儲(chǔ)中,需要按照壓縮方式解析數(shù)據(jù)才能得到目標(biāo)元素的值,導(dǎo)致訪問效率降低。因此,選項(xiàng)B是正確的答案。42.線性表的順序存儲(chǔ)結(jié)構(gòu)是一種()。A、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)B、順序存取的存儲(chǔ)結(jié)構(gòu)C、索引存取的存儲(chǔ)結(jié)構(gòu)D、散列存取的存儲(chǔ)結(jié)構(gòu)【正確答案】:A解析:

線性表的順序存儲(chǔ)結(jié)構(gòu)是一種基于數(shù)組的實(shí)現(xiàn)方式,其中元素在內(nèi)存中連續(xù)存儲(chǔ),并且可以通過下標(biāo)(隨機(jī)存?。┲苯釉L問。因此,選項(xiàng)A"隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)"是正確的答案。順序存取表示對(duì)元素的順序訪問,索引存取指的是通過索引值進(jìn)行訪問,而散列存儲(chǔ)結(jié)構(gòu)是另一種不同的數(shù)據(jù)結(jié)構(gòu)而非線性表的存儲(chǔ)結(jié)構(gòu)。43.下列關(guān)于圖的敘述中,正確的是()。Ⅰ.回路是簡(jiǎn)單路徑Ⅱ.存儲(chǔ)稀疏圖,用鄰接矩陣比鄰接表更省空間Ⅲ.若有向圖中存在拓?fù)湫蛄?,則該圖不存在回路A、僅ⅡB、僅Ⅰ、ⅡC、僅ⅢD、僅Ⅰ、Ⅲ【正確答案】:C解析:

在圖中,回路是指從一個(gè)頂點(diǎn)開始,經(jīng)過圖中所有頂點(diǎn)一次且僅一次的路徑。但是路徑不一定是簡(jiǎn)單路徑,可能包含重復(fù)的頂點(diǎn)。因此選項(xiàng)Ⅰ不正確。在存儲(chǔ)稀疏圖時(shí),鄰接矩陣和鄰接表都可以使用,具體哪種方式更省空間取決于具體的應(yīng)用場(chǎng)景。因此選項(xiàng)Ⅱ可能是正確的。有向圖中存在拓?fù)湫蛄?,說(shuō)明圖中可能存在環(huán)路,但不一定存在回路。因此選項(xiàng)Ⅲ是正確的。綜上所述,正確答案是C。44.假設(shè)一個(gè)隊(duì)列用鏈隊(duì)方式存儲(chǔ),隊(duì)頭指針指向隊(duì)頭結(jié)點(diǎn),隊(duì)尾指針指向隊(duì)尾結(jié)點(diǎn),在進(jìn)隊(duì)操作時(shí),()。A、僅修改隊(duì)頭指針B、僅修改隊(duì)尾指針C、隊(duì)頭、隊(duì)尾指針一定都會(huì)修改D、隊(duì)頭、隊(duì)尾指針可能都會(huì)修改【正確答案】:D解析:

在進(jìn)隊(duì)操作時(shí),隊(duì)頭指針指向隊(duì)頭結(jié)點(diǎn),而隊(duì)尾指針指向隊(duì)尾結(jié)點(diǎn)。如果隊(duì)列未滿,隊(duì)頭指針不變;如果隊(duì)列已滿,需要添加新元素,此時(shí)不僅隊(duì)尾指針會(huì)指向新元素所在節(jié)點(diǎn),隊(duì)頭指針也可能會(huì)修改為新的節(jié)點(diǎn)。因此,答案是D。45.將一個(gè)從大到小的數(shù)組,用以下排序方法排序成從小到大的,()最快。A、堆排序B、冒泡排序C、快速排序D、直接插入排序【正確答案】:A解析:

堆排序是一種基于比較的排序方法,它通過構(gòu)建一個(gè)大頂堆或小頂堆,然后將堆頂元素與堆尾元素交換,從而實(shí)現(xiàn)了從大到小的排序。如果要對(duì)一個(gè)從小到大的數(shù)組進(jìn)行排序,需要先將數(shù)組逆序排列成從大到小,然后再進(jìn)行堆排序。因此,堆排序在這種情況下是最快的。而冒泡排序、快速排序和直接插入排序在處理從小到大的排序時(shí),其時(shí)間復(fù)雜度可能不如堆排序高。因此,正確答案是A。46.以下數(shù)據(jù)結(jié)構(gòu)中元素之間為非線性關(guān)系的是()。A、棧B、隊(duì)列C、線性表D、以上都不是【正確答案】:D解析:

題目要求找出元素之間為非線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。根據(jù)選項(xiàng)分析:A.棧:棧是一種后進(jìn)先出(LIFO)的線性數(shù)據(jù)結(jié)構(gòu),元素之間具有線性關(guān)系。B.隊(duì)列:隊(duì)列是一種先進(jìn)先出(FIFO)的線性數(shù)據(jù)結(jié)構(gòu),元素之間也具有線性關(guān)系。C.線性表:線性表是一種元素按序排列且具有一一對(duì)應(yīng)關(guān)系的線性數(shù)據(jù)結(jié)構(gòu),元素之間同樣具有線性關(guān)系。由此可見,以上全部選項(xiàng)都是線性數(shù)據(jù)結(jié)構(gòu),沒有符合題目要求的元素之間非線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。因此,正確答案是D,即以上都不是。47.線性表是具有n個(gè)()的有限序列。A、表元素B、字符C、數(shù)據(jù)元素D、數(shù)據(jù)項(xiàng)【正確答案】:C解析:

根據(jù)數(shù)據(jù)結(jié)構(gòu)的定義,線性表是具有n個(gè)數(shù)據(jù)元素的有限序列。其中,數(shù)據(jù)元素是指線性表中存儲(chǔ)的獨(dú)立單元,可以是任意類型的數(shù)據(jù),如整數(shù)、字符、結(jié)構(gòu)體等。因此,正確答案是選項(xiàng)C:數(shù)據(jù)元素。48.假設(shè)有k個(gè)關(guān)鍵字互為同義詞,若用線性探測(cè)法把這k個(gè)關(guān)鍵字存入哈希表中,至少要進(jìn)行()次探測(cè)。A、k-1B、kC、k+1D、k(k+1)/2【正確答案】:D解析:

線性探測(cè)法是一種解決哈希沖突的方法,當(dāng)發(fā)生沖突時(shí),會(huì)逐個(gè)依次地檢查后續(xù)位置直到找到一個(gè)空槽進(jìn)行插入。如果有k個(gè)關(guān)鍵字互為同義詞要存入哈希表中,那么最好的情況是這k個(gè)關(guān)鍵字都可以直接插入哈希表中的空槽,不需要進(jìn)行探測(cè)。但最壞的情況是,所需插入的位置正好被其他不相關(guān)的關(guān)鍵字占據(jù)了,每一次都需要逐個(gè)探測(cè)后續(xù)位置,直到找到空槽。在最壞情況下,進(jìn)行線性探測(cè)從起始位置到第k個(gè)位置,即需要進(jìn)行k次探測(cè)。因此,選項(xiàng)D.k(k+1)/2是正確的答案。49.以下最適合用作鏈隊(duì)的不帶頭結(jié)點(diǎn)的鏈表是()。A、只帶首結(jié)點(diǎn)指針的循環(huán)單鏈表B、只帶尾結(jié)點(diǎn)指針的單鏈表C、只帶首結(jié)點(diǎn)指針的單鏈表D、只帶尾結(jié)點(diǎn)指針的循環(huán)單鏈表【正確答案】:D解析:

鏈隊(duì)是一種特殊的隊(duì)列數(shù)據(jù)結(jié)構(gòu),在實(shí)現(xiàn)中常用鏈表來(lái)存儲(chǔ)隊(duì)列元素。對(duì)于不帶頭結(jié)點(diǎn)的鏈隊(duì)而言,由于沒有額外的頭結(jié)點(diǎn),需要通過具體的尾結(jié)點(diǎn)來(lái)標(biāo)識(shí)隊(duì)列的末尾。在選項(xiàng)中,只帶尾結(jié)點(diǎn)指針的循環(huán)單鏈表才能滿足這個(gè)要求。因?yàn)檠h(huán)單鏈表具有從任意節(jié)點(diǎn)出發(fā)都可以遍歷整個(gè)鏈表的特點(diǎn),并且通過尾結(jié)點(diǎn)指針可以方便地插入、刪除隊(duì)列元素。因此,選項(xiàng)D是最適合用作鏈隊(duì)的不帶頭結(jié)點(diǎn)的鏈表。50.順序表和鏈表相比存儲(chǔ)密度較大,這是因?yàn)?)。A、順序表的存儲(chǔ)空間是預(yù)先分配的B、順序表不需要增加指針來(lái)表示元素之間的邏輯關(guān)系C、鏈表中所有結(jié)點(diǎn)的地址是連續(xù)的D、順序表中所有元素的存儲(chǔ)地址是不連續(xù)的【正確答案】:B解析:

順序表和鏈表是兩種常見的數(shù)據(jù)結(jié)構(gòu),它們?cè)诖鎯?chǔ)方式上存在一些差異。順序表使用連續(xù)的存儲(chǔ)空間來(lái)存儲(chǔ)元素,并且存儲(chǔ)空間需要預(yù)先分配。因此,選項(xiàng)A中提到的順序表的存儲(chǔ)空間是預(yù)先分配的說(shuō)法是正確的。鏈表使用離散的存儲(chǔ)空間(節(jié)點(diǎn))來(lái)存儲(chǔ)元素,每個(gè)節(jié)點(diǎn)包含了元素值以及指向下一個(gè)節(jié)點(diǎn)的指針。這導(dǎo)致鏈表中所有節(jié)點(diǎn)的地址不連續(xù),而不像順序表一樣具有連續(xù)存儲(chǔ)的特征。因此,選項(xiàng)D中提到的順序表中所有元素的存儲(chǔ)地址是不連續(xù)的言論也是正確的。但是,題目要求選擇"順序表和鏈表相比存儲(chǔ)密度較大"的原因,這就需要進(jìn)一步考慮。該問題源于選項(xiàng)B,即順序表不需要增加指針來(lái)表示元素之間的邏輯關(guān)系。與鏈表不同,順序表中的元素之間的關(guān)系使用元素在內(nèi)存中的相對(duì)位置來(lái)表示,而不需要額外的指針。因此,相對(duì)于鏈表,順序表的存儲(chǔ)效率更高,可以實(shí)現(xiàn)更大的存儲(chǔ)密度。綜上所述,正確答案應(yīng)該是選項(xiàng)B,即順序表不需要增加指針來(lái)表示元素之間的邏輯關(guān)系。51.二叉樹中所有結(jié)點(diǎn)的度之和等于結(jié)點(diǎn)數(shù)加()。A、0B、1C、-1D、2【正確答案】:B解析:

在二叉樹中,每個(gè)節(jié)點(diǎn)的度數(shù)表示其擁有的子節(jié)點(diǎn)數(shù)量。一個(gè)節(jié)點(diǎn)要么沒有子節(jié)點(diǎn)(度為0),要么只有一個(gè)子節(jié)點(diǎn)(度為1),要么有兩個(gè)子節(jié)點(diǎn)(度為2)。對(duì)于一個(gè)二叉樹而言,每個(gè)節(jié)點(diǎn)的度要么是0,要么是1,要么是2。所以二叉樹中所有節(jié)點(diǎn)的度之和等于結(jié)點(diǎn)數(shù)加上各個(gè)節(jié)點(diǎn)度為1的個(gè)數(shù)。因此,在題目中,正確的選項(xiàng)是B,也就是結(jié)點(diǎn)數(shù)加1。52.以下關(guān)于二叉樹的說(shuō)法中正確的是()。A、二叉樹中度為0的結(jié)點(diǎn)個(gè)數(shù)等于度為2的結(jié)點(diǎn)個(gè)數(shù)加1B、二叉樹中結(jié)點(diǎn)個(gè)數(shù)必大于0C、完全二叉樹中任何結(jié)點(diǎn)的度為0或2D、二叉樹的度為2【正確答案】:A解析:

針對(duì)該題目,可以進(jìn)行如下解析:A選項(xiàng)是正確的。在二叉樹中,度為0的結(jié)點(diǎn)也稱為葉子結(jié)點(diǎn),即沒有子節(jié)點(diǎn)的結(jié)點(diǎn)。而度為2的結(jié)點(diǎn)表示有兩個(gè)子節(jié)點(diǎn)的結(jié)點(diǎn)。因此,A選項(xiàng)表達(dá)了葉子結(jié)點(diǎn)數(shù)量與度為2的結(jié)點(diǎn)數(shù)量之間的關(guān)系,即葉子結(jié)點(diǎn)數(shù)量等于度為2的結(jié)點(diǎn)數(shù)量加1。B選項(xiàng)是錯(cuò)誤的。二叉樹可以為空樹,即不包含任何結(jié)點(diǎn)。當(dāng)樹為空時(shí),結(jié)點(diǎn)個(gè)數(shù)為0。C選項(xiàng)是不準(zhǔn)確的。完全二叉樹是指除了最后一層可能未滿外,其它各層的節(jié)點(diǎn)都要達(dá)到最大值,并且最后一層從左往右連續(xù)排列。所以,在完全二叉樹中,可能存在度為1的結(jié)點(diǎn)。D選項(xiàng)是不準(zhǔn)確的。二叉樹的度不限定為2,二叉樹的度可以為0、1或2。因此,正確的答案是選項(xiàng)A。53.快速排序在()情況下最不利于發(fā)揮其長(zhǎng)處。A、排序的數(shù)據(jù)量太大B、排序的數(shù)據(jù)中含有多個(gè)相同值C、排序的數(shù)據(jù)個(gè)數(shù)為奇數(shù)D、排序的數(shù)據(jù)已基本有序【正確答案】:D解析:

快速排序是一種高效的排序算法,可以在大部分情況下都表現(xiàn)出較好的性能。然而,在某些特定情況下,快速排序可能不太適用。D選項(xiàng)中指出,如果待排序的數(shù)據(jù)已經(jīng)基本有序,那么快速排序的效率就不再明顯,甚至變得低下。這是因?yàn)榭焖倥判虻暮诵乃枷胧峭ㄟ^分割和遞歸來(lái)實(shí)現(xiàn)排序,而在基本有序的數(shù)據(jù)中,劃分的負(fù)載會(huì)很不平均,遞歸樹的深度變得很大,從而導(dǎo)致快速排序的性能下降。因此,選項(xiàng)D是正確答案。在數(shù)據(jù)已基本有序的情況下,快速排序最不利于發(fā)揮其長(zhǎng)處。54.設(shè)有100個(gè)元素的有序表,用折半查找時(shí),不成功時(shí)最大的比較次數(shù)是()。A、25B、50C、10D、7【正確答案】:D解析:

在折半查找(二分查找)算法中,每一次比較都會(huì)將查找范圍縮小一半。對(duì)于一個(gè)有序表中的元素,在最壞的情況下,需要進(jìn)行l(wèi)og2(n)次比較才能確定是否存在目標(biāo)元素,其中n表示元素個(gè)數(shù)。根據(jù)題目所給的情況,有100個(gè)元素,并且查找不成功,即目標(biāo)元素不存在,因此需要進(jìn)行查找完整的100個(gè)元素,相應(yīng)地比較次數(shù)是log2(100)≈6.64次。因?yàn)轭}目是要求最大的比較次數(shù),所以我們可以向上取整,加1,即最大的比較次數(shù)是7次。因此,正確答案是選項(xiàng)D.55.兩個(gè)棧采用順序存儲(chǔ)結(jié)構(gòu)時(shí),共享同一個(gè)數(shù)組空間的好處是()。A、減少存取時(shí)間,降低下溢出發(fā)生的機(jī)率B、節(jié)省存儲(chǔ)空間,降低上溢出發(fā)生的機(jī)率C、減少存取時(shí)間,降低上溢出發(fā)生的機(jī)率D、節(jié)省存儲(chǔ)空間,降低下溢出發(fā)生的機(jī)率【正確答案】:B解析:

當(dāng)兩個(gè)棧采用順序存儲(chǔ)結(jié)構(gòu)時(shí),共享同一個(gè)數(shù)組空間的好處是節(jié)省存儲(chǔ)空間,降低上溢出發(fā)生的機(jī)率。因?yàn)閮蓚€(gè)棧使用同一個(gè)數(shù)組空間,可以充分利用該數(shù)組空間的存儲(chǔ)容量,避免了浪費(fèi)。這樣可以最大限度地節(jié)省存儲(chǔ)空間,并減少出現(xiàn)上溢出(overflow)的概率。因此,B選項(xiàng)是正確的答案。56.一個(gè)含有n(n>0)個(gè)頂點(diǎn)的連通圖采用鄰接矩陣存儲(chǔ),則該矩陣一定是()。A、對(duì)稱矩陣B、非對(duì)稱矩陣C、稀疏矩陣D、稠密矩陣【正確答案】:A解析:

當(dāng)一個(gè)含有n個(gè)頂點(diǎn)的連通圖采用鄰接矩陣存儲(chǔ)時(shí),該矩陣一定是對(duì)稱矩陣。這是因?yàn)闊o(wú)向圖的鄰接矩陣具有對(duì)稱性,即如果頂點(diǎn)vi與頂點(diǎn)vj之間有邊存在,則對(duì)應(yīng)的鄰接矩陣元素a[i][j]與a[j][i]相等。而連通圖中的任意兩個(gè)頂點(diǎn)之間都存在路徑連接,因此其鄰接矩陣中對(duì)應(yīng)的元素會(huì)互相表達(dá)這種連接的關(guān)系。因此,選項(xiàng)A對(duì)稱矩陣是正確答案。57.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似于二叉樹的()算法。A、先序遍歷B、中序遍歷C、后序遍歷D、層次遍歷【正確答案】:A解析:

采用鄰接表存儲(chǔ)的圖結(jié)構(gòu)中,深度優(yōu)先遍歷(DFS)算法是一種遞歸的遍歷方式。類似于二叉樹的遍歷算法中的先序遍歷,深度優(yōu)先遍歷首先訪問起始頂點(diǎn),然后遞歸地訪問與當(dāng)前頂點(diǎn)相鄰的尚未訪問過的頂點(diǎn),直到所有可達(dá)頂點(diǎn)都被訪問為止。因此,選項(xiàng)A先序遍歷是與采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類似的二叉樹遍歷算法。所以,選項(xiàng)A是正確的答案。58.兩個(gè)字符串相等的條件是()。A、串的長(zhǎng)度相等B、含有相同的字符集C、都是非空串D、串的長(zhǎng)度相等且對(duì)應(yīng)的字符相同【正確答案】:D解析:

兩個(gè)字符串相等的條件是它們的長(zhǎng)度相等且對(duì)應(yīng)的字符也相同。因此,選項(xiàng)D是正確的答案。59.以下關(guān)于二叉樹的說(shuō)法中正確的是()。A、二叉樹就是度為2的樹B、二叉樹中不存在度大于2的結(jié)點(diǎn)C、二叉樹就是有序樹D、二叉樹中每個(gè)結(jié)點(diǎn)的度都為2【正確答案】:B解析:

在二叉樹中,每個(gè)節(jié)點(diǎn)最多只能有兩個(gè)子節(jié)點(diǎn),即度數(shù)不能大于2。因此,說(shuō)法B是正確的,即二叉樹中不存在度大于2的結(jié)點(diǎn)。其他選項(xiàng)不符合二叉樹的定義:A選項(xiàng)不正確,二叉樹并不要求所有節(jié)點(diǎn)的度數(shù)都為2。C選項(xiàng)不正確,二叉樹并不要求是有序樹。D選項(xiàng)不正確,二叉樹中每個(gè)節(jié)點(diǎn)的度可以是0、1或者2。因此,選項(xiàng)B是正確的答案。60.樹最適合用來(lái)表示()。A、有序數(shù)據(jù)元素B、無(wú)序數(shù)據(jù)元素C、元素之間具有分支層次關(guān)系的數(shù)據(jù)D、元素之間無(wú)聯(lián)系的數(shù)據(jù)【正確答案】:C解析:

樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),由節(jié)點(diǎn)和連接這些節(jié)點(diǎn)的邊組成。每個(gè)節(jié)點(diǎn)可以有零個(gè)或多個(gè)子節(jié)點(diǎn),但只有一個(gè)父節(jié)點(diǎn)(除了根節(jié)點(diǎn))。樹最適合用來(lái)表示具有分支層次關(guān)系的數(shù)據(jù),其中每個(gè)元素都可以有一個(gè)或多個(gè)子元素,形成分支結(jié)構(gòu)。因此,選項(xiàng)C-"元素之間具有分支層次關(guān)系的數(shù)據(jù)"是正確的答案。61.設(shè)樹T的度為4,其中度為1、2、3、4的結(jié)點(diǎn)個(gè)數(shù)分別為4、2、1、1,則T中的葉子結(jié)點(diǎn)個(gè)數(shù)是()。A、5B、6C、7D、8【正確答案】:D解析:

根據(jù)題目中樹T的度為4,而度為1的結(jié)點(diǎn)個(gè)數(shù)為4,這意味著有4個(gè)分支只與一個(gè)結(jié)點(diǎn)相連。另外,度為2的結(jié)點(diǎn)個(gè)數(shù)為2,度為3和度為4的結(jié)點(diǎn)各有1個(gè)。由于樹的度定義為與該結(jié)點(diǎn)相連的分支數(shù),而葉子結(jié)點(diǎn)是樹中度為0的結(jié)點(diǎn),也就是說(shuō)沒有與之相連的分支。那么根據(jù)題目提供的信息,我們可以看出樹T中的葉子結(jié)點(diǎn)個(gè)數(shù)等于度為1的結(jié)點(diǎn)個(gè)數(shù),即4個(gè)。因此,選項(xiàng)D的答案"8"是正確的。62.哈希查找方法一般適用于()情況下的查找。A、查找表為鏈表B、查找表為有序表C、關(guān)鍵字集合比地址集合大得多D、關(guān)鍵字集合與地址集合之間存在著某種對(duì)應(yīng)關(guān)系?!菊_答案】:D解析:

哈希查找方法是一種通過哈希函數(shù)將關(guān)鍵字映射到地址位置進(jìn)行查找的方法。根據(jù)給出的選項(xiàng):A.查找表為鏈表:哈希查找方法與查找表的組織方式?jīng)]有直接的關(guān)聯(lián),所以這個(gè)選項(xiàng)并不適用于判斷是否適用哈希查找方法。B.查找表為有序表:同樣,有序表作為查找表的特性與哈希查找方法無(wú)關(guān),所以這個(gè)選項(xiàng)也不適用。C.關(guān)鍵字集合比地址集合大得多:這個(gè)條件并不是哈希查找方法適用的前提條件。D.關(guān)鍵字集合與地址集合之間存在著某種對(duì)應(yīng)關(guān)系:這是哈希查找方法的核心要求,通過哈希函數(shù)確定關(guān)鍵字與地址之間的對(duì)應(yīng)關(guān)系。因此,選項(xiàng)D是正確的答案。63.查找效率低的數(shù)據(jù)結(jié)構(gòu)是()。A、有序順序表B、二叉排序樹C、堆D、二叉平衡樹【正確答案】:C解析:

在給出的選項(xiàng)中,需要選擇一個(gè)查找效率低的數(shù)據(jù)結(jié)構(gòu)。根據(jù)常見的查找算法和數(shù)據(jù)結(jié)構(gòu)的性質(zhì),我們可以進(jìn)行如下分析:有序順序表是一種基于數(shù)組的數(shù)據(jù)結(jié)構(gòu),在其中元素按照一定的順序排列。因此,通過二分查找等算法,可以在有序順序表中較快地定位目標(biāo)元素。相比于無(wú)序表,有序順序表的查找效率要高,所以選項(xiàng)A不符合條件。二叉排序樹是一種二叉樹結(jié)構(gòu),其特點(diǎn)是左子樹節(jié)點(diǎn)值小于根節(jié)點(diǎn),右子樹節(jié)點(diǎn)值大于根節(jié)點(diǎn)。這種結(jié)構(gòu)可以在平均情況下實(shí)現(xiàn)較高效率的查找操作,所以選項(xiàng)B也不符合條件。堆是一種完全二叉樹結(jié)構(gòu),根據(jù)堆的性質(zhì)進(jìn)行特定查詢時(shí),查找的時(shí)間復(fù)雜度為O(n)。因?yàn)樾枰闅v整個(gè)堆來(lái)尋找目標(biāo)元素或者滿足某個(gè)特定條件的元素,所以堆的查找效率較低,選項(xiàng)C符合條件。而二叉平衡樹(AVL樹)是一種自平衡的二叉搜索樹結(jié)構(gòu),在該結(jié)構(gòu)中插入、刪除和查找等操作均能在對(duì)數(shù)時(shí)間復(fù)雜度內(nèi)完成,所以選項(xiàng)D也不符合條件。綜上所述,正確答案是選項(xiàng)C。64.對(duì)于AOE網(wǎng)的關(guān)鍵路徑,以下敘述()是正確的。A、任何一個(gè)關(guān)鍵活動(dòng)提前完成,則整個(gè)工程一定會(huì)提前完成B、完成整個(gè)工程的最短時(shí)間是從源點(diǎn)到匯點(diǎn)的最短路徑長(zhǎng)度C、一個(gè)AOE網(wǎng)的關(guān)鍵路徑一定是唯一的D、任何一個(gè)活動(dòng)持續(xù)時(shí)間的改變可能影響關(guān)鍵路徑的改變【正確答案】:D解析:

對(duì)于AOE網(wǎng)的關(guān)鍵路徑,以下敘述是正確的。D選項(xiàng)正確。在AOE網(wǎng)中,如果任何一個(gè)活動(dòng)的持續(xù)時(shí)間發(fā)生改變,都有可能影響到整個(gè)工程的關(guān)鍵路徑。因?yàn)殛P(guān)鍵路徑上的活動(dòng)持續(xù)時(shí)間總和決定了整個(gè)工程的最短完成時(shí)間,所以對(duì)活動(dòng)持續(xù)時(shí)間的改變可能導(dǎo)致關(guān)鍵路徑上的活動(dòng)發(fā)生變化或者整個(gè)關(guān)鍵路徑發(fā)生改變。因此D選項(xiàng)是正確的答案。65.一個(gè)有向無(wú)環(huán)圖G的拓?fù)湫蛄袨椤?,vi,…,vj,…,則不可能出現(xiàn)的情形是()。A、G中有邊B、G中有一條從vi到vj的路徑C、G中沒有邊D、G中有一條從vj到vi的路徑【正確答案】:D解析:

根據(jù)題目描述,該有向無(wú)環(huán)圖存在一個(gè)拓?fù)湫蛄校窗凑赵撔蛄锌梢员闅v圖中的所有節(jié)點(diǎn)。這意味著圖中不存在環(huán)路,即從vi到vj的路徑是存在的。因此,選項(xiàng)D中描述的情況是不可能的,因?yàn)閺膙j到vi的路徑是不可能存在的。其他選項(xiàng)描述的情況在該圖中都是可能出現(xiàn)的。66.某算法的空間復(fù)雜度為O(1),則()。A、該算法執(zhí)行不需要任何輔助空間B、該算法執(zhí)行所需輔助空間大小與問題規(guī)模n無(wú)關(guān)C、該算法執(zhí)行不需要任何空間D、該算法執(zhí)行所需全部空間大小與問題規(guī)模n無(wú)關(guān)【正確答案】:B解析:

空間復(fù)雜度指的是算法在執(zhí)行過程中所需要的額外輔助空間的大小。當(dāng)某算法的空間復(fù)雜度為O(1)時(shí),表示該算法執(zhí)行所需輔助空間大小與問題規(guī)模n無(wú)關(guān),即該算法使用固定大小的輔助空間來(lái)完成操作,無(wú)論輸入規(guī)模大小如何。因此,選項(xiàng)B是正確的答案。這并不意味著該算法執(zhí)行過程中完全不需要任何空間,而是表示其所需輔助空間的大小與問題規(guī)模n無(wú)關(guān)。67.設(shè)二維數(shù)組A[3][5],每個(gè)數(shù)組元素占用2個(gè)存儲(chǔ)單元,若按列優(yōu)先順序進(jìn)行存儲(chǔ),A[0][0]的存儲(chǔ)地址為100,則A[2][3]的存儲(chǔ)地址是()。A、122B、126C、114D、116【正確答案】:A解析:

根據(jù)題干中給出的信息,二維數(shù)組A[3][5]按列優(yōu)先順序進(jìn)行存儲(chǔ),并且每個(gè)數(shù)組元素占用2個(gè)存儲(chǔ)單元。我們可以計(jì)算出A[2][3]的存儲(chǔ)地址如下:每個(gè)數(shù)組元素占用2個(gè)存儲(chǔ)單元,所以一行(3個(gè)數(shù)組元素)占用的存儲(chǔ)單元數(shù)為3*2=6。按列優(yōu)先順序存儲(chǔ),即列數(shù)小的先存儲(chǔ)。因此,前兩列共占用的存儲(chǔ)單元為2*3*2=12。第三列數(shù)組元素開始存儲(chǔ)的位置為存儲(chǔ)地址100+12=112。在第三列中,A[2][3]是第4個(gè)數(shù)組元素,所以存儲(chǔ)地址為112+4*2=120。因此,存儲(chǔ)地址為120,選項(xiàng)A(122)是正確的答案。68.對(duì)于有n個(gè)頂點(diǎn)的帶權(quán)連通圖,它的最小生成樹是指圖中任意一個(gè)()。A、由n-1條權(quán)值最小的邊構(gòu)成的子圖B、由n-l條權(quán)值之和最小的邊構(gòu)成的子圖C、由n個(gè)頂點(diǎn)構(gòu)成的極大連通子圖D、由n個(gè)頂點(diǎn)構(gòu)成的極小連通子圖,且邊的權(quán)值之和最小【正確答案】:D解析:

對(duì)于有n個(gè)頂點(diǎn)的帶權(quán)連通圖,最小生成樹是指一個(gè)包含所有n個(gè)頂點(diǎn)的極小連通子圖,并且使得選取的邊的權(quán)值之和最小。選項(xiàng)A中,只要選擇n-1條權(quán)值最小的邊,即可滿足連通性,但不能保證權(quán)值之和最小,因此不正確。選項(xiàng)B中,只考慮邊的總和而不是連通性,也不滿足最小生成樹的定義,因此不正確。選項(xiàng)C中,忽略了最小生成樹的概念來(lái)定義一個(gè)極大連通子圖,因此不正確。綜上所述,選項(xiàng)D:由n個(gè)頂點(diǎn)構(gòu)成的極小連通子圖,且邊的權(quán)值之和最小,是描述最小生成樹的準(zhǔn)確定義。因此,選項(xiàng)D是正確的答案。69.在一個(gè)具有n個(gè)頂點(diǎn)的無(wú)向連通圖中至少有()條邊。A、nB、n+lC、n-1D、n/2【正確答案】:C解析:

在一個(gè)具有n個(gè)頂點(diǎn)的無(wú)向連通圖中,從一個(gè)頂點(diǎn)到其他所有頂點(diǎn)之間都存在一條路徑。因此,至少需要邊的數(shù)量為從起始頂點(diǎn)開始到其他所有頂點(diǎn)的路徑數(shù)量之和減去起點(diǎn)自身,即n-1條邊。因此,正確答案是C。70.給定一個(gè)空棧,若元素10、20、23、13依次進(jìn)棧,然后有兩個(gè)數(shù)出棧,又有3個(gè)數(shù)進(jìn)棧,第一次進(jìn)棧的元素23現(xiàn)在()。A、已出棧B、從棧底算起第3個(gè)C、處于棧頂D、從棧底算起第4個(gè)【正確答案】:A解析:

題目中描述了一系列關(guān)于元素進(jìn)棧和出棧的操作。在給定的操作序列中,元素10、20、23、13依次進(jìn)棧,然后有兩個(gè)數(shù)出棧,再有3個(gè)數(shù)進(jìn)棧。根據(jù)棧的后進(jìn)先出(LIFO)特性,即最新進(jìn)入棧中的元素會(huì)在完成出棧操作后最先被訪問到。在該操作序列中,元素23是第三個(gè)進(jìn)棧的元素。而出棧操作會(huì)先移除最近進(jìn)棧的元素。因此,元素23在經(jīng)歷兩次出棧操作后已經(jīng)出棧,不再在棧中。因此,答案是選項(xiàng)A,已出棧。71.線性表有一個(gè)特點(diǎn)()。A、至少有兩個(gè)元素,即開始元素和終端元素B、若沒有開始元素,則一定沒有終端元素C、每個(gè)元素必須有一個(gè)前趨元素D、任何一個(gè)元素都還可能既是開始元素又是終端元素【正確答案】:B解析:

線性表是一種基本的數(shù)據(jù)結(jié)構(gòu),具有特定的性質(zhì)和特點(diǎn):A選項(xiàng)描述了線性表需要至少有兩個(gè)元素,即開始元素和終端元素。但是,并不是所有的線性表都必須有終端元素,比如可擴(kuò)展長(zhǎng)度的線性表并沒有特定的終端元素。B選項(xiàng)描述了線性表若沒有開始元素,則一定沒有終端元素,這是線性表的一個(gè)典型性質(zhì),即線性表是從一個(gè)固定的起始元素開始,并在一個(gè)固定的終點(diǎn)結(jié)束。C選項(xiàng)描述了每個(gè)元素必須有一個(gè)前趨元素,在普通的線性表中,并不要求每個(gè)元素都具有前趨元素,只需滿足前一個(gè)元素和后一個(gè)元素之間存在線性關(guān)系即可。D選項(xiàng)描述了任何一個(gè)元素都還可能既是開始元素又是終端元素,這是不準(zhǔn)確的,線性表的典型特點(diǎn)就是從一個(gè)起始元素開始,并以固定的終端元素結(jié)束。因此,根據(jù)上述分析,正確答案是B。72.設(shè)n個(gè)元素的進(jìn)棧序列是p1、p2、p3、…、pn,其輸出序列是1、2、3、…、n,若pn=1,則pi(1≤i≤n-1)的值是()。A、n-i+1B、n-iC、iD、有多種可能【正確答案】:A解析:

本題描述了一個(gè)進(jìn)棧序列并給出了輸出序列的條件。根據(jù)先入后出的原則,序列的倒數(shù)第一個(gè)元素pn在輸出序列中必須是1,而除了這個(gè)特殊情況之外,其他元素會(huì)按照它們進(jìn)棧的順序在輸出序列中依次出現(xiàn)。所以如果pn=1,那么pi的值可以通過推導(dǎo)得到。由于pn=1,那么輸出序列中1的位置就在最后,因此pi應(yīng)該是倒數(shù)第二個(gè)元素。根據(jù)題目描述的進(jìn)棧序列的順序,則pi為p(n-1)。綜上所述,pi的值為n-i+1。因此,選項(xiàng)A是正確的答案。73.一個(gè)n階的對(duì)稱矩陣A,如果采用以列優(yōu)先(即以列序?yàn)橹餍颍┑膲嚎s方式存放到一個(gè)一維數(shù)組B中,則B的容量為()。A、n2B、n2/2C、n(n+1)/2D、(n+1)(n+2)/2【正確答案】:C解析:

對(duì)稱矩陣意味著左上到右下的對(duì)角線上的元素相等。而以列優(yōu)先的壓縮方式存放矩陣意味著每一列的元素按順序連續(xù)存放在一維數(shù)組中。對(duì)于一個(gè)n階的對(duì)稱矩陣,它只需要存儲(chǔ)上三角部分(包括對(duì)角線)或者下三角部分(不包括對(duì)角線),因?yàn)閷?duì)稱性導(dǎo)致這兩部分完全相同。采用以列優(yōu)先的壓縮方式,我們只需要存儲(chǔ)上三角部分(包括對(duì)角線)的元素。那么一共有多少個(gè)元素需要存儲(chǔ)呢?對(duì)于第一列,有n個(gè)元素;第二列,有n-1個(gè)元素;一直到最后一列只有一個(gè)元素,即總共有n+(n-1)+(n-2)+...+1=n(n+1)/2個(gè)元素。因此,選項(xiàng)C是B的容量。74.二叉排序中,最小關(guān)鍵字結(jié)點(diǎn)()。A、沒有左孩子結(jié)點(diǎn)B、沒有右孩子結(jié)點(diǎn)C、一定沒有左右孩子結(jié)點(diǎn)D、一定存在左右孩子結(jié)點(diǎn)【正確答案】:A解析:

在二叉排序樹中,根據(jù)結(jié)點(diǎn)的特性,左子樹上的結(jié)點(diǎn)的關(guān)鍵字必須小于該結(jié)點(diǎn)的關(guān)鍵字,右子樹上的結(jié)點(diǎn)的關(guān)鍵字必須大于該結(jié)點(diǎn)的關(guān)鍵字。因此,在二叉排序樹中,沒有左孩子結(jié)點(diǎn)的結(jié)點(diǎn)一定具有最小的關(guān)鍵字,它沒有左子樹可以繼續(xù)向下搜索更小的元素。因此,選項(xiàng)A“沒有左孩子結(jié)點(diǎn)”是正確答案。75.一個(gè)順序表所占用存儲(chǔ)空間的大小與()無(wú)關(guān)。A、順序表長(zhǎng)度B、順序表中元素的數(shù)據(jù)類型C、順序表中元素各數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型D、順序表中各元素的存放次序【正確答案】:D解析:

在一個(gè)順序表中,存儲(chǔ)空間的大小與以下因素有關(guān):A.順序表長(zhǎng)度:順序表中元素的數(shù)量會(huì)影響所需的存儲(chǔ)空間大小。即使元素類型和數(shù)據(jù)項(xiàng)的類型相同,元素個(gè)數(shù)不同也會(huì)使存儲(chǔ)空間大小不同。B.順序表中元素的數(shù)據(jù)類型:不同的數(shù)據(jù)類型占據(jù)的存儲(chǔ)空間大小是不同的。例如,一個(gè)順序表中若存儲(chǔ)的是整型數(shù)據(jù),會(huì)占用較小的存儲(chǔ)空間,而存儲(chǔ)的是浮點(diǎn)型數(shù)據(jù),會(huì)占用較大的存儲(chǔ)空間。C.順序表中元素各數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型:每個(gè)元素內(nèi)部的數(shù)據(jù)項(xiàng)可能具有不同的數(shù)據(jù)類型,不同的數(shù)據(jù)類型可能需要不同的存儲(chǔ)空間大小。例如,順序表中一個(gè)元素的數(shù)據(jù)項(xiàng)存儲(chǔ)整型,另一個(gè)元素的數(shù)據(jù)項(xiàng)存儲(chǔ)字符串,這將導(dǎo)致存儲(chǔ)空間大小的差異。D.順序表中各元素的存放次序:雖然元素的存放次序不會(huì)直接影響存儲(chǔ)空間大小,但它會(huì)影響訪問和操作元素時(shí)的效率和復(fù)雜性。存放次序的不同可能導(dǎo)致對(duì)元素的查找和插入等操作的時(shí)間復(fù)雜度發(fā)生變化。綜上所述,存儲(chǔ)空間大小與D.順序表中各元素的存放次序是沒有直接關(guān)系的。因此,D是正確答案。76.以下關(guān)于有向圖的說(shuō)法中,正確的是()。A、強(qiáng)連通圖中任何頂點(diǎn)到其他所有頂點(diǎn)都有邊B、完全有向圖一定是強(qiáng)連通圖C、有向圖中任一頂點(diǎn)的入度等于出度D、有向圖邊集的子集和頂點(diǎn)集的子集可構(gòu)成原有向圖的子圖【正確答案】:B解析:

以下是對(duì)于選項(xiàng)的解析:A.強(qiáng)連通圖中任何頂點(diǎn)到其他所有頂點(diǎn)都有邊:這是對(duì)強(qiáng)連通圖的定義,其中每個(gè)頂點(diǎn)均可通過有向邊相互達(dá)到其他頂點(diǎn)。B.完全有向圖一定是強(qiáng)連通圖:完全有向圖意味著每?jī)蓚€(gè)不同頂點(diǎn)之間都有雙向的有向邊。因此,在完全有向圖中,每個(gè)頂點(diǎn)均可通過有向邊相互達(dá)到其他頂點(diǎn),滿足強(qiáng)連通圖的條件。C.有向圖中任一頂點(diǎn)的入度等于出度:這是對(duì)有向無(wú)環(huán)圖(DAG)中頂點(diǎn)入度和出度關(guān)系的描述,并非所有有向圖都滿足該條件。D.有向圖邊集的子集和頂點(diǎn)集的子集可構(gòu)成原有向圖的子圖:此描述并不準(zhǔn)確。雖然有向圖的邊集和頂點(diǎn)集本身也可以看作是原有向圖的子圖,但其自身的子集未必能構(gòu)成原有向圖的子圖。綜上所述,根據(jù)題目要求,選項(xiàng)B是正確的答案。77.在數(shù)據(jù)處理過程中常需要保存一些中間數(shù)據(jù),若某程序處理中先保存的數(shù)據(jù)先操作,則使用()來(lái)保存這些數(shù)據(jù)。A、線性表B、隊(duì)列C、棧D、單鏈表【正確答案】:B解析:

在數(shù)據(jù)處理過程中,如果需要保留一些中間數(shù)據(jù),并且先保存的數(shù)據(jù)應(yīng)該先被操作,則可以使用隊(duì)列來(lái)保存這些數(shù)據(jù)。隊(duì)列是一種具有先進(jìn)先出(FIFO)特性的線性數(shù)據(jù)結(jié)構(gòu),適合在數(shù)據(jù)處理過程中按照先后順序進(jìn)行操作。通過隊(duì)列,我們可以將先保存的數(shù)據(jù)先移除并操作,保持?jǐn)?shù)據(jù)的順序性。因此,選項(xiàng)B,即隊(duì)列,是正確的答案。78.函數(shù)f(x,y)定義如下:f(x,y)=f(x-1,y)+f(x,y-1)當(dāng)x>0且y>0f(x,y)=x+y否則則f(2,1)的值是()。A、1B、2C、3D、4【正確答案】:D解析:

根據(jù)函數(shù)f(x,y)的定義,我們可以觀察到變量x和y之間的關(guān)系,并且使用遞歸的方式來(lái)逐步求解。當(dāng)x=2,y=1時(shí),我們需要對(duì)條件進(jìn)行判斷。根據(jù)條件,當(dāng)x>0且y>0時(shí),f(x,y)=f(x-1,y)+f(x,y-1);當(dāng)x<=0或y<=0時(shí),f(x,y)=x+y。對(duì)于x=2的情況,因?yàn)閤>0,所以f(2,1)應(yīng)該按照遞歸公式計(jì)算:f(2,1)=f(1,1)+f(2,0)=2+1=3。但是此時(shí)y=0不滿足條件中的y>0,所以應(yīng)該使用另一種情況下的函數(shù)值f(2,1)=2+1=3。因此,答案是C。79.以下()方法可用于求無(wú)向圖的連通分量。A、遍歷B、拓?fù)渑判駽、Dijkstra算法D、Prim算法【正確答案】:A解析:

求無(wú)向圖的連通分量可以使用遍歷算法。遍歷是一種常用的圖的算法,它通過從一個(gè)節(jié)點(diǎn)開始,沿著邊依次遍歷其他節(jié)點(diǎn)來(lái)確定圖的連通性。在遍歷過程中,可以標(biāo)記已訪問過的節(jié)點(diǎn),以確定不同的連通分量。拓?fù)渑判蚴怯糜谟邢驘o(wú)環(huán)圖的算法,不適用于無(wú)向圖。Dijkstra算法和Prim算法是用于解決最短路徑和最小生成樹問題的算法,不直接適用于求無(wú)向圖的連通分量。綜上所述,選項(xiàng)A中的遍歷方法是適用于求無(wú)向圖的連通分量的算法。因此,答案是A。80.以下序列不是堆的是()。A、(100,85,98,77,80,60,82,40,20,10,66)B、(100,98,85,82,80,77,66,60,40,20,10)C、(10,20,40,60,66,77,80,82,85,98,100)D、(100,85,40,77,80,60,66,98,82,10,20)【正確答案】:D解析:

在數(shù)據(jù)結(jié)構(gòu)中,堆是一種特殊的二叉樹結(jié)構(gòu),其中每個(gè)節(jié)點(diǎn)的值都大于或等于(最大堆)或小于或等于(最小堆)其子節(jié)點(diǎn)的值。根據(jù)這個(gè)定義,我們可以判斷哪個(gè)序列不是堆。選項(xiàng)A、B和C為遞增排序的序列,它們遵循堆的定義,因此是堆。選項(xiàng)D中的序列為(100,85,40,77,80,60,66,98,82,10,20),這個(gè)序列并不符合堆的要求,因?yàn)椴糠止?jié)點(diǎn)的值大于其對(duì)應(yīng)的子節(jié)點(diǎn)的值。因此,選項(xiàng)D不是堆。因此,正確答案是D。81.有n個(gè)十進(jìn)制整數(shù)進(jìn)行基數(shù)排序,其中最大的整數(shù)為5位,則基數(shù)排序過程中臨時(shí)建立的隊(duì)數(shù)個(gè)數(shù)是()。A、10B、nC、5D、2【正確答案】:A解析:

基數(shù)排序是一種根據(jù)元素的位數(shù)從低位到高位進(jìn)行排序的算法。在給定$n$個(gè)十進(jìn)制整數(shù)中,最大的整數(shù)為5位數(shù),因此在基數(shù)排序過程中,需要臨時(shí)建立$10$個(gè)隊(duì)列,每個(gè)隊(duì)列表示數(shù)字$0$到$9$的區(qū)間,用于按當(dāng)前位數(shù)字分配元素。所以,選項(xiàng)A,即10個(gè)隊(duì)列,是正確答案。82.在()中將會(huì)用到棧結(jié)構(gòu)。A、遞歸調(diào)用B、圖深度優(yōu)先遍歷C、表達(dá)式求值D、以上場(chǎng)景都有【正確答案】:D解析:

棧是一種常見的數(shù)據(jù)結(jié)構(gòu),在許多場(chǎng)景下會(huì)被使用。給出的選項(xiàng)中包括了幾個(gè)典型的應(yīng)用場(chǎng)景:A.遞歸調(diào)用:遞歸調(diào)用是指函數(shù)內(nèi)部調(diào)用自身的過程,這會(huì)形成一個(gè)類似于嵌套的結(jié)構(gòu),每次調(diào)用都需保存局部變量及地址信息。通常情況下,這些信息會(huì)放入棧中,以便在遞歸結(jié)束后能夠通過?;厮莸缴弦粋€(gè)調(diào)用點(diǎn)。B.圖深度優(yōu)先遍歷:在圖的深度優(yōu)先遍歷算法中,經(jīng)過的節(jié)點(diǎn)會(huì)被記錄在棧中以便后續(xù)的回溯處理。C.表達(dá)式求值:在對(duì)表達(dá)式進(jìn)行求值的過程中,需要解析和計(jì)算操作符和操作數(shù)。其中,??梢杂糜诖鎯?chǔ)操作符、操作數(shù)和中間計(jì)算結(jié)果。綜上所述,選項(xiàng)D"以上場(chǎng)景都有"是正確的答案。83.如果具有n個(gè)頂點(diǎn)的圖恰好是一個(gè)環(huán),則它有()棵生成樹。A、n-1B、nC、n+1D、2n【正確答案】:D解析:

根據(jù)圖理論的相關(guān)概念,一個(gè)圖如果恰好是一個(gè)環(huán),那它一定沒有分支或者其他連通部分。對(duì)于這樣的圖,生成樹就是將所有頂點(diǎn)以任意方式連成一個(gè)環(huán)的情況。如題所述,輸入具有n個(gè)頂點(diǎn)的圖是一個(gè)環(huán),則它只有一棵生成樹,因?yàn)橹荒苓x擇不同的起始點(diǎn)開始遍歷圖,但最終必然會(huì)遍歷完所有的點(diǎn)形成圖的環(huán)。因此,答案選項(xiàng)D中的2n是錯(cuò)誤的,正確答案應(yīng)該是選項(xiàng)B中的n。84.算法的平均時(shí)間復(fù)雜度取決于()。A、問題的規(guī)模B、待處理數(shù)據(jù)的初始狀態(tài)C、A和BD、計(jì)算機(jī)的配置【正確答案】:A解析:

算法的平均時(shí)間復(fù)雜度是衡量算法效率的重要指標(biāo)。它取決于問題的規(guī)模,即輸入數(shù)據(jù)的大小、數(shù)量或其他衡量問題規(guī)模的特征。與問題的規(guī)模相關(guān)的因素包括輸入數(shù)據(jù)的大小、數(shù)量、結(jié)構(gòu)等。待處理數(shù)據(jù)的初始狀態(tài)(選項(xiàng)B)是影響算法的具體執(zhí)行過程和結(jié)果的因素,但不是直接影響算法的平均時(shí)間復(fù)雜度的因素。因此,正確答案是A,算法的平均時(shí)間復(fù)雜度取決于問題的規(guī)模。85.n個(gè)頂點(diǎn)的連通圖的生成樹有()個(gè)頂點(diǎn)。A、n-1B、nC、n+1D、不確定【正確答案】:B解析:

連通圖的生成樹是指通過連接圖中所有頂點(diǎn)的一棵包含所有頂點(diǎn)且不含回路的樹。對(duì)于一個(gè)連通圖來(lái)說(shuō),在生成樹中即使我們刪除了某些邊,仍然能夠保證圖中所有頂點(diǎn)仍然連通。它的定義是“保留所有關(guān)鍵枝的最小代價(jià)樹”,其中關(guān)鍵枝表示連接各頂點(diǎn)(或在spanningtree上兩個(gè)頂點(diǎn)之間肯定無(wú)其他更短帶權(quán)的路徑(Frond)關(guān)系到給定塊的所有圖的子圖由此可知,生成樹的頂點(diǎn)數(shù)應(yīng)該是與原圖的頂點(diǎn)數(shù)相同。因此,正確答案是B,n。86.采用遞歸方式對(duì)順序表進(jìn)行快速排序,下列關(guān)于遞歸次數(shù)的敘述中,正確的是()。A、遞歸次數(shù)與初始數(shù)據(jù)的排列次序無(wú)關(guān)B、每次劃分后,先處理較長(zhǎng)的分區(qū)可以減少遞歸次數(shù)C、每次劃分后,先處理較短的分區(qū)可以減少遞歸次數(shù)D、遞歸次數(shù)與每次劃分后得到的分區(qū)處理順序無(wú)關(guān)【正確答案】:D解析:

對(duì)順序表進(jìn)行快速排序一般是采用遞歸方式實(shí)現(xiàn)的。在遞歸過程中,關(guān)于遞歸次數(shù)的敘述正確的是:A選項(xiàng)(遞歸次數(shù)與初始數(shù)據(jù)的排列次序無(wú)關(guān))不正確,因?yàn)槌跏紨?shù)據(jù)的排列次序會(huì)影響遞歸的劃分過程和執(zhí)行次數(shù)。B選項(xiàng)(每次劃分后,先處理較長(zhǎng)的分區(qū)可以減少遞歸次數(shù))和C選項(xiàng)(每次劃分后,先處理較短的分區(qū)可以減少遞歸次數(shù))也都不正確。每次劃分后處理較長(zhǎng)或較短的分區(qū)不能直接減少遞歸次數(shù),因?yàn)槊恳淮蝿澐侄家獙?duì)兩個(gè)分區(qū)進(jìn)行遞歸調(diào)用。D選項(xiàng)(遞歸次數(shù)與每次劃分后得到的分區(qū)處理順序無(wú)關(guān))是正確的。遞歸次數(shù)與分區(qū)的處理順序無(wú)關(guān),無(wú)論先處理長(zhǎng)分區(qū)還是短分區(qū),最終得到的結(jié)果都一樣。因此,正確答案是D。87.哈希表中出現(xiàn)的哈希沖突是指()。A、兩個(gè)元素具有相同的序號(hào)B、兩個(gè)元素的關(guān)鍵字不同,而其他屬性相同C、數(shù)據(jù)元素過多D、兩個(gè)元素的關(guān)鍵字不同,而對(duì)應(yīng)的哈希函數(shù)值相同【正確答案】:D解析:

哈希沖突是指在哈希表中,兩個(gè)元素具有不同的關(guān)鍵字,但是它們經(jīng)過哈希函數(shù)計(jì)算后產(chǎn)生的哈希值卻相同的情況。由于哈希函數(shù)可能將不同的元素映射到同一個(gè)槽位(存儲(chǔ)位置),因此會(huì)產(chǎn)生沖突。所以,正確答案是選項(xiàng)D,即哈希表中出現(xiàn)的哈希沖突指的是兩個(gè)元素的關(guān)鍵字不同,但對(duì)應(yīng)的哈希函數(shù)值相同。其他選項(xiàng)并不是哈希沖突的定義。88.關(guān)于串的的敘述,不正確的是()。A、串是字符的有限序列B、空串是由空格構(gòu)成的串C、替換是串的一種重要運(yùn)算D、串既可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)【正確答案】:B解析:

串是一種數(shù)據(jù)結(jié)構(gòu),表示由字符組成的有限序列。空串是指長(zhǎng)度為零的串,不包含任何字符,而不是由空格構(gòu)成的串。因此,選項(xiàng)B是不正確的,答案是B。89.串是一種特殊的線性表,其特殊性體現(xiàn)在()。A、可以順序存儲(chǔ)B、數(shù)據(jù)元素是單個(gè)字符C、可以鏈接存儲(chǔ)D、數(shù)據(jù)元素可以是多個(gè)字符【正確答案】:B解析:

串是一種特殊的線性表,與順序表、鏈表等不同之處在于它的數(shù)據(jù)元素是單個(gè)字符。每個(gè)字符可以包括字母、數(shù)字或其他特定符號(hào),例如一個(gè)字符串"Hello"可以看作一個(gè)由5個(gè)數(shù)據(jù)元素組成的串。因此,正確答案是選項(xiàng)B,它描述了串的特殊性質(zhì)。90.在計(jì)算機(jī)內(nèi)實(shí)現(xiàn)遞歸算法時(shí)所需的輔助數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、隊(duì)列C、樹D、圖【正確答案】:A解析:

在計(jì)算機(jī)內(nèi)實(shí)現(xiàn)遞歸算法時(shí),常用的輔助數(shù)據(jù)結(jié)構(gòu)是棧。遞歸算法涉及到函數(shù)的調(diào)用與返回,每次函數(shù)調(diào)用時(shí)都會(huì)保存當(dāng)前的狀態(tài)(如局部變量、返回地址等),以便在函數(shù)返回后能正確恢復(fù)。而棧這種先入后出的特性正好符合這個(gè)需求。因此,選項(xiàng)A"棧"是正確的答案。91.函數(shù)f(x,y)定義如下:f(n)=f(n-1)+f(n-2)+1當(dāng)n>1f(n)=1否則則f(5)的值是()。A、10B、15C、16D、20【正確答案】:B解析:

根據(jù)題目描述,函數(shù)f(x,y)在n>1的情況下,會(huì)按照f(shuō)(n-1)+f(n-2)+1的規(guī)律進(jìn)行遞推。當(dāng)n=5時(shí),遞推過程為f(4)+f(3)+1,f(3)+f(2)+1,f(2)+f(1)+1,f(1)=1,所以f(5)的值為f(4)+f(3)+f(2)+f(1)。由于已知f(4)=f(3)=f(2)=f(1)=1,所以f(5)=f(4)+f(3)+f(2)+f(1)=1+1+1+1=4+4+4+4=15。因此,答案為B。92.一棵高度為8的完全二叉樹至多有()葉子結(jié)點(diǎn)。A、63B、64C、127D、128【正確答案】:D解析:

一棵高度為8的完全二叉樹的葉子節(jié)點(diǎn)個(gè)數(shù)取決于它的層數(shù)。對(duì)于完全二叉樹,每一層的節(jié)點(diǎn)數(shù)都是滿的,除了最后一層可能不滿外。在高度為8的完全二叉樹中,第一層有1個(gè)節(jié)點(diǎn),第二層有2個(gè)節(jié)點(diǎn),以此類推,第8層有2^7=128個(gè)節(jié)點(diǎn)。但是,高度為8的完全二叉樹只能到第8層,因此最后一層只能有部分節(jié)點(diǎn)有葉子結(jié)點(diǎn)。所以,最多只能有2^7=128個(gè)葉子結(jié)點(diǎn)。因此,正確答案是D.128。93.下面關(guān)于串的敘述中,正確的是()。A、串是一種特殊的線性表B、串中元素只能是字母C、空串就是空白串D、串的長(zhǎng)度必須大于零【正確答案】:A解析:

串是一種數(shù)據(jù)結(jié)構(gòu),表示由零個(gè)或多個(gè)字符組成的序列。字符串通常被用來(lái)表示文本等信息。在給定的選項(xiàng)中,只有選項(xiàng)A是正確的敘述,即串是一種特殊的線性表。選項(xiàng)B和選項(xiàng)C都是不準(zhǔn)確的,因?yàn)榇械脑乜梢允侨我庾址?,而空串并不等同于空白串。選項(xiàng)D也是不準(zhǔn)確的,因?yàn)榇拈L(zhǎng)度可以是零(即為空串)。因此,選項(xiàng)A是正確的答案。94.若初始數(shù)據(jù)基本正序,則選用的最好的排序方法是()。Ⅰ.直接插入排序Ⅱ.冒泡排序Ⅲ.快速排序Ⅳ.二路歸并排序A、僅ⅠB、僅Ⅰ、ⅡC、僅Ⅰ、ⅢD、僅Ⅱ、Ⅳ【正確答案】:B解析:

在初始數(shù)據(jù)已經(jīng)是基本正序的情況下,對(duì)于排序方法的選擇,希望能夠達(dá)到最佳性能。對(duì)于四種排序方法而言:Ⅰ.直接插入排序:實(shí)際上具有穩(wěn)定性、原地排序、簡(jiǎn)單等特點(diǎn),在基本有序或者小規(guī)模數(shù)據(jù)時(shí)有較好的表現(xiàn)。Ⅱ.冒泡排序:該方法主要通過比較和交換相鄰元素的方式進(jìn)行排序,在基本有序或小規(guī)模數(shù)據(jù)中也可以有不錯(cuò)的表現(xiàn)。Ⅲ.快速排序:操作復(fù)雜度較低,具有平均而言較快的速度。但是對(duì)于已經(jīng)有序或接近有序的數(shù)據(jù)可能會(huì)產(chǎn)生比較差的性能。Ⅳ.二路歸并排序:該算法使用遞歸將待排序數(shù)組分為兩半,并通過多個(gè)數(shù)組合并來(lái)實(shí)現(xiàn)排序。雖然具有穩(wěn)定性和較快的最壞情況下時(shí)間復(fù)雜度,但對(duì)于初始數(shù)據(jù)為基本正序這種情況下它的性能并不明顯優(yōu)于前兩種算法。因此,在初始數(shù)據(jù)集合基本正序的情況下,選用的最好的排序方法是僅Ⅰ所對(duì)應(yīng)的"直接插入排序"。故正確答案應(yīng)為選項(xiàng)B。95.二叉樹若用順序存儲(chǔ)結(jié)構(gòu)表示,則下列4種運(yùn)算中的()最容易實(shí)現(xiàn)。A、先序遍歷二叉樹B、中序遍歷二叉樹C、層次遍歷二叉樹D、根據(jù)結(jié)點(diǎn)的值查找其存儲(chǔ)位置【正確答案】:C解析:

二叉樹的順序存儲(chǔ)結(jié)構(gòu)是通過數(shù)組來(lái)實(shí)現(xiàn)的,其中根據(jù)父節(jié)點(diǎn)與子節(jié)點(diǎn)的關(guān)系,可以通過簡(jiǎn)單的索引轉(zhuǎn)換來(lái)找到對(duì)應(yīng)的子節(jié)點(diǎn)和父節(jié)點(diǎn)。在這種順序存儲(chǔ)結(jié)構(gòu)中,最容易實(shí)現(xiàn)的操作是層次遍歷二叉樹。層次遍歷是從二叉樹的根節(jié)點(diǎn)開始,逐層訪問每個(gè)節(jié)點(diǎn),在順序存儲(chǔ)結(jié)構(gòu)中通過索引計(jì)算,可以很方便地按層次順序遍歷所有節(jié)點(diǎn),而不需要或只需較少的額外操作。因此,選項(xiàng)C層次遍歷二叉樹是最容易實(shí)現(xiàn)的操作。96.順序表具有隨機(jī)存取特性,指的是()。A、查找值為x的元素與順序表中元素個(gè)數(shù)n無(wú)關(guān)B、查找值為x的元素與順序表中元素個(gè)數(shù)n有關(guān)C、查找序號(hào)為i的元素與順序表中元素個(gè)數(shù)n無(wú)關(guān)D、查找序號(hào)為i的元素與順序表中元素個(gè)數(shù)n有關(guān)【正確答案】:C解析:

順序表是一種常見的數(shù)據(jù)結(jié)構(gòu),具有隨機(jī)存取特性。這意味著查找具體值為x的元素并不依賴于順序表中包含的元素個(gè)數(shù)n。選項(xiàng)A錯(cuò)誤,因?yàn)椴檎揖唧w值為x的元素需要考慮到元素個(gè)數(shù)n。選項(xiàng)B錯(cuò)誤,因?yàn)樵撨x項(xiàng)與順序表的特性相反,查找值為x的元素與順序表中元素個(gè)數(shù)n無(wú)關(guān)。選項(xiàng)C正確,順序表中元素的索引與元素個(gè)數(shù)n無(wú)關(guān),可以通過固定的索引直接定位到對(duì)應(yīng)位置的元素。選項(xiàng)D錯(cuò)誤,同樣與順序表的特性相反,查找序號(hào)為i的元素并不受順序表中元素個(gè)數(shù)n的影響。綜上所述,正確答案是C。97.一棵哈夫曼樹用于100個(gè)字符的編碼,則其中的結(jié)點(diǎn)個(gè)數(shù)是()。A、99B、100C、101D、199【正確答案】:D解析:

哈夫曼樹是一種用于編碼和解碼的二叉樹結(jié)構(gòu),其中每個(gè)葉子節(jié)點(diǎn)對(duì)應(yīng)一個(gè)字符并帶有權(quán)值,而內(nèi)部節(jié)點(diǎn)不帶字符。在構(gòu)建哈夫曼樹時(shí),從葉子節(jié)點(diǎn)開始不斷合并兩個(gè)權(quán)值最小的節(jié)點(diǎn),直到最后只剩下一個(gè)根節(jié)點(diǎn)。對(duì)于100個(gè)字符的編碼,需要至少99次合并操作才能得到一棵完整的哈夫曼樹,因?yàn)槊看魏喜⒉僮鲗?huì)減少一個(gè)節(jié)點(diǎn)。因此,在這種情況下,哈夫曼樹中的節(jié)點(diǎn)個(gè)數(shù)為99個(gè),選項(xiàng)D(199)是錯(cuò)誤的。正確答案應(yīng)該是A(99)。98.按照二叉樹的定義,具有3個(gè)結(jié)點(diǎn)的二叉樹有()種。A、3B、4C、5D、6【正確答案】:C解析:

根據(jù)二叉樹的定義,具有3個(gè)結(jié)點(diǎn)的二叉樹的可能性取決于根節(jié)點(diǎn)的位置和子樹的個(gè)數(shù)。對(duì)于具有3個(gè)結(jié)點(diǎn)的二叉樹來(lái)說(shuō),根節(jié)點(diǎn)可以有3種選擇(自身、左子樹、右子樹),而左子樹和右子樹分配結(jié)點(diǎn)可以為0、1、2。因此,總共

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論