計算機二級公共基礎(chǔ)知識題庫及答案_第1頁
計算機二級公共基礎(chǔ)知識題庫及答案_第2頁
計算機二級公共基礎(chǔ)知識題庫及答案_第3頁
計算機二級公共基礎(chǔ)知識題庫及答案_第4頁
計算機二級公共基礎(chǔ)知識題庫及答案_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章數(shù)據(jù)結(jié)構(gòu)一、選擇題〔1〕以下數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是A〕順序存儲的有序線性表B〕線性鏈表C〕二叉鏈表D〕有序線性鏈表【答案】A【解析】二分查找只適用于順序存儲的有序表。在此所說的有序表是指線性表中的元素按值非遞減排列(即從小到大.但允許相鄰元素值相等)的。選項A正確?!?〕以下關(guān)于棧的描述正確的選項是A〕在棧中只能插入元素而不能刪除元素B〕在棧中只能刪除元素而不能插入元素C〕棧是特殊的線性表,只能在一端插入或刪除元素D〕棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素【答案】C【解析】棧是一種特殊的線性表,其插入與刪除運算都只在線性表的一端進行。由此可見,選項A、選項B和選項D錯誤,正確答案是選項C?!?〕以下表達中正確的選項是A〕一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)B〕數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)C〕一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D〕一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率【答案】D【解析】一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序、鏈接、索引等存儲結(jié)構(gòu)。而采用不同的存儲結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。由此可見,選項D的說法正確。(4)算法執(zhí)行過程中所需要的存儲空間稱為算法的A〕時間復(fù)雜度B〕計算工作量C〕空間復(fù)雜度D〕工作空間【答案】c【解析】算法執(zhí)行時所需要的存儲空間,包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。這些存儲空間共稱為算法的空間復(fù)雜度。(5)以下關(guān)于隊列的表達中正確的選項是A〕在隊列中只能插入數(shù)據(jù)B〕在隊列中只能刪除數(shù)據(jù)C〕隊列是先進先出的線性表D〕隊列是先進后出的線性表【答案】c【解析】對隊列可以進行插入和刪除數(shù)據(jù)的操作,只是插入數(shù)據(jù)只能在隊尾,刪除數(shù)據(jù)只能在隊頭。所以隊列是先進先出的線性表。(6)設(shè)有以下二叉樹:AACBCBFEDFED對此二叉樹后序遍歷的結(jié)果為A〕ABCDEFB〕BDAECFC〕ABDCEFD〕DBEFCA【答案】D【解析】二叉樹的遍歷分為先序、中序、后序三種不同方式。此題要求后序遍歷。其遍歷順序應(yīng)該為:后序遍歷左子樹一>后序遍歷右子樹一>訪問根結(jié)點。按照定義,后序遍歷序列是DBEFCA,故答案為D。(7)以下表達中正確的選項是()A)程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)B)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D)以上三種說法都不對【答案】A【解析】此題考查程序效率。程序效率是指程序運行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設(shè)計、使用的算法、數(shù)據(jù)的存儲結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的根底上,選擇一種適宜的存儲結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,此題選項A的說法是正確的。(8)以下表達中正確的選項是()A)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定是一一對應(yīng)的B)由于計算機存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)C)程序設(shè)計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線線結(jié)構(gòu)D)以上三種說法都不對【答案】D【解析】此題考查數(shù)據(jù)結(jié)構(gòu)的根本知識。數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類根本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機中有兩種,即順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。順序存儲結(jié)構(gòu)是把數(shù)據(jù)元素存儲在一塊連續(xù)地址空間的內(nèi)存中;鏈?zhǔn)酱鎯Y(jié)構(gòu)是使用指針把相互直接關(guān)聯(lián)的節(jié)點鏈接起來。因此,這兩種存儲結(jié)構(gòu)都是線性的??梢?,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應(yīng)的。因此,選項A和選項B的說法都是錯誤的。無論數(shù)據(jù)的邏輯結(jié)構(gòu)是線性的還是非線性的,只能選擇順序存儲結(jié)構(gòu)或鏈?zhǔn)酱鎯Y(jié)構(gòu)來實現(xiàn)存儲。程序設(shè)計語言中,數(shù)組是內(nèi)存中一段連續(xù)的地址空間,可看作是順序存儲結(jié)構(gòu)??梢杂脭?shù)組來實現(xiàn)樹型邏輯結(jié)構(gòu)的存儲,比方二叉樹。因此,選項c的說法是錯誤的(9)冒泡排序在最壞情況下的比擬次數(shù)是()A)n(n+1)/2B)nlog2nC)n(n-1)/2D)n/2【答案】C【解析】冒泡排序的根本思想是:將相鄰的兩個元素進行比擬,如果反序,那么交換;對于一個待排序的序列,經(jīng)一趟排序后,最大值的元素移動到最后的位置,其他值較大的元素也向最終位置移動,此過程稱為一趟冒泡。對于有n個數(shù)據(jù)的序列,共需n-1趟排序,第i趟對從l到n-i個數(shù)據(jù)進行比擬、交換。冒泡排序的最壞情況是待排序序列逆序,第l趟比擬n-1次,第2趟比擬n-2次。依此類推,最后趟比擬1次,一共進行n-l趟排序。因此,冒泡排序在最壞情況下的比擬次數(shù)是(n-1)+(n-2)+…+l,結(jié)果為n(n-1)/2。此題的正確答案是選項c。(10)一棵二叉樹中共有70個葉子結(jié)點與80個度為1的結(jié)點,那么該二叉樹中的總結(jié)點數(shù)為()A)219B)221C)229D【答案】A【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,假設(shè)終端結(jié)點(即葉子結(jié)點)數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2,那么n0=n2+l。根據(jù)這條性質(zhì)可知,假設(shè)二叉樹中有70個葉子結(jié)點,那么其度為2的結(jié)點數(shù)為70-1,即69個。二叉樹的總結(jié)點數(shù)是度為2、度為1和葉子結(jié)點的總和,因此,題目中的二叉樹總結(jié)點數(shù)為69+80+70,即219。因此,此題的正確答案是選項A。(11)以下表達中正確的選項是()A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B)算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的D)算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)【答案】B【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的根本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需時間的度量;與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類根本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機中有兩種,即順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)??梢?,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應(yīng)的。因此,選項c的說法是錯誤的。有時人們?yōu)榱颂岣咚惴ǖ臅r間復(fù)雜度,而以犧牲空間復(fù)雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。(12)以下關(guān)于算法的時間復(fù)雜度陳述正確的選項是算法的時間復(fù)雜度是指執(zhí)行算法程序所需要的時間算法的時間復(fù)雜度是指算法程序的長度算法的時間復(fù)雜度是指算法執(zhí)行過程中所需要的根本運算次數(shù)算法的時間復(fù)雜度是指算法程序中的指令條數(shù)【答案】C【解析】算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,也就是算法在執(zhí)行過程中所執(zhí)行的根本運算的次數(shù),而不是指程序運行需要的時間或是程序的長度。(13)以下關(guān)于棧的表達中正確的選項是A〕在棧中只能插入數(shù)據(jù)B〕在棧中只能刪除數(shù)據(jù)C〕棧是先進先出的線性表D〕棧是先進后出的線性表【答案】D【解析】對??蛇M行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能是在棧頂,是一種特殊的線性表。所以棧是先進后出的線性表。(14)設(shè)有以下二叉樹:AACBCBEFDEFDFF對此二叉樹中序遍歷的結(jié)果為A〕ABCDEFB〕DAECFC〕BDAECFD〕DBEFCA【答案】C【解析】二叉樹的遍歷分為先序、中序、后序三種不同方式。此題要求中序遍歷,其遍歷順序應(yīng)該為:中序遍歷左子樹->訪問根結(jié)點->中序遍歷右子樹。按照定義,中序遍歷序列是BDAECF,故答案為B。(15)按照“后進先出〞原那么組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是A〕隊列

B〕棧C〕雙向鏈表

D〕二叉樹【答案】B【解析】“后進先出〞表示最后被插入的元素最先能被刪除。選項A中,隊列是指允許在一端進行插入、而在另一端進行刪除的線性表,在隊列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,隊列又稱為“先進先出〞的線性表,它表達了“先來先效勞〞的原那么:選項B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。隊列和棧都屬于線性表,它們具有順序存儲的特點,所以才有“先進先出〞和“后進先出〞的數(shù)據(jù)組織方式。雙向鏈表使用鏈?zhǔn)酱鎯Ψ绞剑鏄湟餐ǔ2捎面準(zhǔn)酱鎯Ψ绞?,它們的存儲?shù)據(jù)的空間可以是不連續(xù)的,各個數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。所以選項c和選項D錯。(16)以下表達中正確的選項是A〕線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)B〕棧與隊列是非線性結(jié)構(gòu)C〕雙向鏈表是非線性結(jié)構(gòu)D〕只有根結(jié)點的二叉樹是線性結(jié)構(gòu)【答案】A【解析】一個非空的數(shù)據(jù)結(jié)構(gòu)如果滿足以下兩個條件:(1)有且只有一個根結(jié)點;(2)每一個結(jié)點最多有一個前件,也最多有一個后件。那么稱為線性結(jié)構(gòu)。線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu),選項A的說法是正確的。棧與隊列是特殊的線性表,它們也是線性結(jié)構(gòu),選項B的說法是錯誤的;雙向鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu),其對應(yīng)的邏輯結(jié)構(gòu)也是線性結(jié)構(gòu),而不是非線性結(jié)構(gòu),選項c的說法是錯誤的;二叉樹是非線性結(jié)構(gòu),而不是線性結(jié)構(gòu),選項D的說法是錯誤的。因此,此題的正確答案為A(17)對如下二叉樹AABCDEF進行后序遍歷的結(jié)果為A〕ABCDEF

B〕DBEAFCC〕ABDECF

D〕DEBFCA【答案】D【解析】二叉樹后序遍歷的簡單描述如下:假設(shè)二叉樹為空,那么結(jié)束返回。否那么〔1)后序遍歷左子樹;(2)后序遍歷右子樹;(3)訪問根結(jié)點。也就是說,后序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點,并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點。根據(jù)后序遍歷的算法,后序遍歷的結(jié)果為DEBFCA。(18)以下對隊列的表達正確的選項是()A)隊列屬于非線性表B)隊列按“先進后出〞原那么組織數(shù)據(jù)C)隊列在隊尾刪除數(shù)據(jù)D)隊列按“先進先出〞原那么組織數(shù)據(jù)【答案】D【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中隊列的根本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端那么稱為隊頭。這與日常生活中的排隊是一致的,最早進入隊列的人最早離開,新來的人總是參加到隊尾。因此,此題中只有選項D的說法是正確的。(19)對以下二叉樹進行前序遍歷的結(jié)果為()A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ【答案】C【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷。根據(jù)對二叉樹根的訪問先后順序不同,分別稱為前序遍歷、中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹中也按照同樣的規(guī)律進行遍歷。下面就是前序遍歷方法的遞歸定義。當(dāng)二叉樹的根不為空時,依次執(zhí)行如下3個操作:(1)訪問根結(jié)點(2)按先序遍歷左子樹(3)按先序遍歷右子樹根據(jù)如上前序遍歷規(guī)那么,來遍歷此題中的二叉樹。首先訪問根結(jié)點,即A,然后遍歷A的左子樹。遍歷左子樹同樣按照相同的規(guī)那么首先訪問根結(jié)點B,然后遍歷B的左子樹。遍歷B的左子樹,首先訪問D,然后訪問D的左子樹,D的左子樹為空,接下來訪問D的右子樹,即Y。遍歷完B的左子樹后,再遍歷B的右子樹,即E。到此遍歷完A的左子樹,接下來遍歷A的右子樹。按照同樣的規(guī)那么,首先訪問C,然后遍歷c的左子樹。即F。c的左子樹遍歷完,接著遍歷c的右子樹。首先訪問右子樹的根結(jié)點X,然后訪問X的左子樹,X的左子樹,即Z,接下來訪問X的右子樹,右子樹為空。到此,把題目的二叉樹進行了一次前序遍歷。遍歷的結(jié)果為ABDYECFXZ,故此題的正確答案為選項C。(20)某二叉樹中有n個度為2的結(jié)點,那么該二叉樹中的葉子結(jié)點數(shù)為()A)n+1B)n-1C)2nD)n/2【答案】A【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,假設(shè)終端結(jié)點(即葉子結(jié)點)數(shù)為no,而其度數(shù)為2的結(jié)點數(shù)為n2,那么n0=n2+l。根據(jù)這條性質(zhì)可知,假設(shè)二叉樹中有n個度為2的結(jié)點,那么該二叉樹中的葉子結(jié)點數(shù)為n+l。因此,此題的正確答案是選項A。(21)在深度為7的滿二叉樹中,葉子結(jié)點的個數(shù)為A〕32 B〕31

C〕64

D〕63【答案】C【解析】在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點。對于滿二叉樹來說,每一層上的結(jié)點數(shù)都到達最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點。因此,在深度為7的滿二叉樹中,所有葉子結(jié)點在第7層上.即其結(jié)點數(shù)為2k-1=27-1=64因此.此題的正確答案為c。(22)以下表達中正確的選項是A〕一個算法的空間復(fù)雜度大,那么其時間復(fù)雜度也必定大B〕一個算法的空間復(fù)雜度大,那么期時間復(fù)雜度必定小C〕一個算法的時間復(fù)雜度大,那么其空間復(fù)雜度必定小D〕上述三種說法都不對【答案】D【解析】時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量;空間復(fù)雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾。但是二者不存在必然的聯(lián)系。因此,選項A、B、c的說法都是錯誤的。故此題的正確答案是D。(23)在長度為64的有序線性表中進行順序查找,最壞情況下需要比擬的次數(shù)為A〕63 B〕64 C〕6 D〕7【答案】B【解析】在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不在線性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進行比擬。假設(shè)相等,那么查找成功,否那么,繼續(xù)進行比擬,即和線性表的第二個數(shù)據(jù)元素進行比擬。同樣,假設(shè)相等,那么查找成功,否那么,繼續(xù)進行比擬。依次類推,直到在線性表中查找到該數(shù)據(jù)或查找到線性表的最后一個元素,算法才結(jié)束。因此,在長度為64的有序線性表中進行順序查找,最壞的情況下需要比擬64次。因此,此題的正確答案為B。(24)對以下二叉樹進行中序遍歷的結(jié)果是A〕ACBDFEG B〕ACBDFGEC〕ABDCGEF D〕FCADBEGFFCEADGB【答案】A【解析】二叉樹的中序遍歷遞歸算法為:如果根不空,那么(1)按中序次序訪問左子樹;(2)訪問根結(jié)點:(3)按中序次序訪問右子樹。否那么返回。此題中,根據(jù)中序遍歷算法.應(yīng)首先按照中序次序訪問以c為根結(jié)點的左子樹,然后再訪問根結(jié)點F,最后才訪問以E為根結(jié)點的右子樹。遍歷以c為根結(jié)點的左子樹同樣要遵循中序遍歷算法,因此中序遍歷結(jié)果為ACBD;然后遍歷根結(jié)點F;遍歷以E為根結(jié)點的右子樹,同樣要遵循中序遍歷算法,因此中序遍歷結(jié)果為EG。最后把這三局部的遍歷結(jié)果按順序連接起來,中序遍歷結(jié)果為ACBDFEG。因此,此題的正確答案是A。〔25〕數(shù)據(jù)的存儲結(jié)構(gòu)是指______。A〕存儲在外存中的數(shù)據(jù) B〕數(shù)據(jù)所占的存儲空間量C〕數(shù)據(jù)在計算機中的順序存儲方式 D〕數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示【答案】D【解析】數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。所以選項D正確?!?6〕以下關(guān)于棧的描述中錯誤的選項是______。A〕棧是先進后出的線性表B〕棧只能順序存儲C〕棧具有記憶作用D〕對棧的插入與刪除操作中,不需要改變棧底指針【答案】B【解析】此題考核棧的根本概念,我們可以通過排除法來確定此題的答案。棧是限定在一端進行插入與刪除的線性表,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進后出〞或“后進先出〞的原那么組織數(shù)據(jù)的,這便是棧的記憶作用,所以選項A和選項C正確。對棧進行插入和刪除操作時,棧頂位置是動態(tài)變化的,棧底指針不變,選項D正確。由此可見,選項B的描述錯誤?!?7〕對于長度為n的線性表,在最壞情況下,以下各排序法所對應(yīng)的比擬次數(shù)中正確的選項是______。A〕冒泡排序為n/2 B〕冒泡排序為nC〕快速排序為n D〕快速排序為n(n-1)/2【答案】D【解析】假設(shè)線性表的長度為n,在最壞情況下,冒泡排序和快速排序需要的比擬次數(shù)為n(n—1)/2。由此可見,選項D正確?!?8〕對長度為n的線性表進行順序查找,在最壞情況下所需要的比擬次數(shù)為______。A〕log2n B〕n/2 C〕n D〕n+1【答案】C【解析】在長度為n的線性表中進行順序查找,最壞情況下需要比擬n次。選項C正確。〔29〕以下對于線性鏈表的描述中正確的選項是______。A〕存儲空間不一定是連續(xù),且各元素的存儲順序是任意的B〕存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面C〕存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面D〕存儲空間必須連續(xù),且各元素的存儲順序是任意的【答案】A【解析】在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來確定的。由此可見,選項A的描述正確?!?0〕某二叉樹中度為2的結(jié)點有18個,那么該二叉樹中有____個葉子結(jié)點?!敬鸢浮?9【解析】二叉樹具有如下性質(zhì):在任意一棵二叉樹中,度為O的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。根據(jù)題意,度為2的節(jié)點為18個,那么,葉子結(jié)點就應(yīng)當(dāng)是19個。〔1〕線性表假設(shè)采用鏈?zhǔn)酱鎯Y(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址A〕必須是連續(xù)的B〕局部地址必須是連續(xù)的C〕一定是不連續(xù)的D〕連續(xù)不連續(xù)都可以解析:在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以是連續(xù)的,也可以是不連續(xù)的,各數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。故此題答案應(yīng)該為選項D〕〔2〕在待排序的元素序列根本有序的前提下,效率最高的排序方法是A〕冒泡排序B〕選擇排序C〕快速排序D〕歸并排序解析:從平均時間性能而言,快速排序最正確,其所需時間最少,但快速排序在最壞情況下的時間性能不如堆排序和歸并排序。當(dāng)序列中的記錄根本有序或元素個數(shù)較少時,冒泡排序和簡單項選擇擇排序為最正確排序方法,故此題答案應(yīng)該為選項A〕?!?〕以下表達中,錯誤的選項是A〕數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)B〕數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)C〕數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的D〕一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)解析:一般來說,一種數(shù)據(jù)結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu)。常用的存儲結(jié)構(gòu)有順序、鏈接、索引等,而采用不同的存儲結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的;一個數(shù)據(jù)結(jié)構(gòu)中的各數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與邏輯關(guān)系是有可能不同的。故此題答案應(yīng)該為選項B〕?!?〕希爾排序?qū)儆贏〕交換排序B〕歸并排序C〕選擇排序D〕插入排序解析:希爾排序的根本思想是把記錄按下標(biāo)的一定增量分組,對每組記錄使用插入排序,隨增量的逐漸減小,所分成的組包含的記錄越來越多,到增量的值減小到1時,整個數(shù)據(jù)合成一組,構(gòu)成一組有序記錄,故其屬于插入排序方法。故此題答案應(yīng)該為選項D〕。〔1〕棧和隊列的共同特點是A〕都是先進先出B〕都是先進后出C〕只允許在端點處插入和刪除元素D〕沒有共同點解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出〞的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種“先進先出〞的線性表。故此題答案應(yīng)該為選項C〕?!?〕二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是A〕acbedB〕decabC〕deabcD〕cedba解析:依據(jù)后序遍歷序列可確定根結(jié)點為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,如以下圖所示。求得該二叉樹的前序遍歷序列為選項D〕?!?〕鏈表不具有的特點是A〕不必事先估計存儲空間B〕可隨機訪問任一元素C〕插入刪除不需要移動元素D〕所需空間與線性表長度成正比解析:鏈表采用的是鏈?zhǔn)酱鎯Y(jié)構(gòu),它克服了順序存儲結(jié)構(gòu)的缺點:它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,不需要移動數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯Y(jié)構(gòu)也有缺乏之處:①每個結(jié)點中的指針域需額外占用存儲空間;②鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種非隨機存儲結(jié)構(gòu)。故此題答案應(yīng)該為選項D〕?!?〕算法的時間復(fù)雜度是指A〕執(zhí)行算法程序所需要的時間B〕算法程序的長度C〕算法執(zhí)行過程中所需要的根本運算次數(shù)D〕算法程序中的指令條數(shù)解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。故此題答案應(yīng)該為選項A〕?!?〕一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,那么該二叉樹的后序遍歷為A〕GEDHFBCAB〕DGEBHFCAC〕ABCDEFGHD〕ACBFEDHG解析:利用前序和中序遍歷的方法可以確定二叉樹的結(jié)構(gòu),具體步驟如下:①前序遍歷的第一個結(jié)點A為樹的根結(jié)點;②中序遍歷中A的左邊的結(jié)點為A的左子樹,A右邊的結(jié)點為A的右子樹;③再分別對A的左右子樹進行上述兩步處理,直到每個結(jié)點都找到正確的位置。故此題答案應(yīng)該為選項B〕?!?〕樹是結(jié)點的集合,它的根結(jié)點數(shù)目是A〕有且只有1B〕1或多于1C〕0或1D〕至少2解析:樹是一個或多個結(jié)點組成的有限集合,其中一個特定的結(jié)點稱為根,其余結(jié)點分為假設(shè)干個不相交的集合。每個集合同時又是一棵樹。樹有且只有1個根結(jié)點。故此題答案應(yīng)該為選項A〕。〔3〕如果進棧序列為e1,e2,e3,e4,那么可能的出棧序列是A〕e3,e1,e4,e2B〕e2,e4,e3,e1C〕e3,e4,e1,e2D〕任意順序解析:由棧"后進先出"的特點可知:A〕中e1不可能比e2先出,C〕中e3不可能比e4先出,且e1不可能比e2先出,D〕中棧是先進后出的,所以不可能是任意順序。B〕中出棧過程如下圖:故此題答案應(yīng)該為選項B〕。〔4〕在設(shè)計程序時,應(yīng)采納的原那么之一是A〕不限制goto語句的使用B〕減少或取消注解行C〕程序越短越好D〕程序結(jié)構(gòu)應(yīng)有助于讀者理解解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此A〕不選;注解行有利于對程序的理解,不應(yīng)減少或取消,B〕也不選;程序的長短要依照實際情況而論,而不是越短越好,C〕也不選。故此題答案應(yīng)該為選項D〕?!?〕程序設(shè)計語言的根本成分是數(shù)據(jù)成分、運算成分、控制成分和A〕對象成分B〕變量成分C〕語句成分D〕傳輸成分解析:程序設(shè)計語言是用于書寫計算機程序的語言,其根本成分有以下4種,數(shù)據(jù)成分:用來描述程序中的數(shù)據(jù)。運算成分:描述程序中所需的運算。控制成分:用來構(gòu)造程序的邏輯控制結(jié)構(gòu)。傳輸成分:定義數(shù)據(jù)傳輸成分,如輸入輸出語言。故此題答案應(yīng)該為選項D〕?!?〕循環(huán)鏈表的主要優(yōu)點是A〕不再需要頭指針了B〕從表中任一結(jié)點出發(fā)都能訪問到整個鏈表C〕在進行插入、刪除運算時,能更好的保證鏈表不斷開D〕某個結(jié)點的位置后,能夠容易的找到它的直接前件解析:循環(huán)鏈表就是將單向鏈表中最后一個結(jié)點的指針指向頭結(jié)點,使整個鏈表構(gòu)成一個環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點出發(fā)都能訪問到整個鏈表。故此題答案應(yīng)該為選項B〕。〔2〕棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,那么出棧序列可能是A〕ABCEDB〕DCBEAC〕DBCEAD〕CDABE解析:棧操作原那么上“后進先出〞,棧底至棧頂依次存放元素A、B、C、D,那么說明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。故此題答案應(yīng)該為選項B〕?!?〕對長度為N的線性表進行順序查找,在最壞情況下所需要的比擬次數(shù)為______。A)N+1B)NC)(N+1)/2D)N/2解析:[答案]B,很簡單,我們的二級程序設(shè)計語言書中都有此算法,另外還要掌握二分法查找,這也是我們二級中常考的。那么二分法最壞的情況為多少次呢?log2n的最小整數(shù)值。比方n為4,最壞的情況要比擬3次;n為18,最壞的情況要比擬5次?!?〕以下表達中正確的選項是A〕線性表是線性結(jié)構(gòu)B〕棧與隊列是非線性結(jié)構(gòu)C〕線性鏈表是非線性結(jié)構(gòu)D〕二叉樹是線性結(jié)構(gòu)解析:線性表是一種線性結(jié)構(gòu),數(shù)據(jù)元素在線性表中的位置只取決于它們自己的序號,即數(shù)據(jù)元素之間的相對位置是線性的;棧、隊列、線性鏈表實際上也是線性表,故也是線性結(jié)構(gòu);樹是一種簡單的非線性結(jié)構(gòu)。故此題答案應(yīng)該為選項A〕。〔2〕非空的循環(huán)單鏈表head的尾結(jié)點〔由p所指向〕,滿足A〕p->next==NULLB〕p==NULLC〕p->next=headD〕p=head解析:循環(huán)鏈表就是將鏈表的最后一個結(jié)點指向鏈表頭結(jié)點〔或第一個結(jié)點〕,即p->next=head。故此題答案應(yīng)該為選項C〕?!?〕數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應(yīng)采用的算法是A〕堆排序B〕直接插入排序C〕快速排序D〕直接選擇排序解析:當(dāng)數(shù)據(jù)表A中每個元素距其最終位置不遠,說明數(shù)據(jù)表A按關(guān)鍵字值根本有序,在待排序序列根本有序的情況下,采用插入排序所用時間最少,故答案為選項B〕?!?〕假設(shè)線性表的長度為n,那么在最壞情況下,冒泡排序需要的比擬次數(shù)為A〕log2nB〕n2C〕O〔n1.5〕D〕n〔n-1〕/2解析:假設(shè)線性表的長度為n,那么在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比擬次數(shù)為n〔n-1〕/2。故此題答案應(yīng)該為選項D〕?!?〕算法分析的目的是A〕找出數(shù)據(jù)結(jié)構(gòu)的合理性B〕找出算法中輸入和輸出之間的關(guān)系C〕分析算法的易懂性和可靠性D〕分析算法的效率以求改良解析:算法分析是指對一個算法的運行時間和占用空間做定量的分析,一般計算出相應(yīng)的數(shù)量級,常用時間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)行效率。故此題答案應(yīng)該為選項D〕。〔3〕線性表L=〔a1,a2,a3,…ai,…an〕,以下說法正確的選項是A〕每個元素都有一個直接前件和直接后件B〕線性表中至少要有一個元素C〕表中諸元素的排列順序必須是由小到大或由大到小D〕除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件解析:線性表可以為空表;第一個元素沒有直接前件,最后一個元素沒有直接后件;線性表的定義中,元素的排列并沒有規(guī)定大小順序。故此題答案應(yīng)該為選項D〕?!?〕在單鏈表中,增加頭結(jié)點的目的是A〕方便運算的實現(xiàn)B〕使單鏈表至少有一個結(jié)點C〕標(biāo)識表結(jié)點中首結(jié)點的位置D〕說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)解析:頭結(jié)點不僅標(biāo)識了表中首結(jié)點的位置,而且根據(jù)單鏈表〔包含頭結(jié)點〕的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點目的是為了便于運算的實現(xiàn)。故此題答案應(yīng)該為選項A〕?!?〕算法的空間復(fù)雜度是指A〕算法程序的長度B〕算法程序中的指令條數(shù)C〕算法程序所占的存儲空間D〕執(zhí)行過程中所需要的存儲空間解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。故此題答案應(yīng)該為選項D〕?!?〕用鏈表表示線性表的優(yōu)點是A〕便于隨機存取B〕花費的存儲空間較順序存儲少C〕便于插入和刪除操作D〕數(shù)據(jù)元素的物理順序與邏輯順序相同解析:鏈?zhǔn)酱鎯Y(jié)構(gòu)克服了順序存儲結(jié)構(gòu)的缺點:它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,不需要移動數(shù)據(jù)元素。故鏈?zhǔn)酱鎯Y(jié)構(gòu)下的線性表便于插入和刪除操作。故此題答案應(yīng)該為選項C〕?!?〕數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的A〕存儲結(jié)構(gòu)B〕物理結(jié)構(gòu)C〕邏輯結(jié)構(gòu)D〕物理和存儲結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計算機中的存儲表示形式。故此題答案應(yīng)該為選項C〕?!?〕由兩個棧共享一個存儲空間的好處是A〕減少存取時間,降低下溢發(fā)生的機率B〕節(jié)省存儲空間,降低上溢發(fā)生的機率C〕減少存取時間,降低上溢發(fā)生的機率D〕節(jié)省存儲空間,降低下溢發(fā)生的機率解析:常常一個程序中要用到多個棧,為了不發(fā)生上溢錯誤,就必須給每個棧分配一個足夠大的存儲空間。但實際中,很難準(zhǔn)確地估計,假設(shè)每個棧都分配過大的存儲空間,勢必造成系統(tǒng)空間緊張;假設(shè)讓多個棧共用一個足夠大的連續(xù)存儲空間,那么可利用棧的動態(tài)特性使他們的存儲空間互補。故此題答案應(yīng)該為選項B〕?!?〕設(shè)有兩個串p和q,求q在p中首次出現(xiàn)位置的運算稱作A〕連接B〕模式匹配C〕求子串D〕求串長解析:子串的定位操作通常稱作串的模式匹配,是各種串處理系統(tǒng)中最重要的操作之一,算法的根本思想是:從主串的開始字符起和模式的第一個字符比擬,假設(shè)相等那么繼續(xù)比擬后續(xù)字符,否那么從主串的下一個字符起再重新和模式的字符比擬,依次類推,直至模式中的每一個字符依次和主串中的一個連續(xù)的字符序列相等,稱匹配成功,否那么稱匹配不成功?!?〕以下關(guān)于隊列的表達中正確的選項是______。A.在隊列中只能插入數(shù)據(jù)B.在隊列中只能刪除數(shù)據(jù)C.隊列是先進先出的線性表D.隊列是先進后出的線性表解析:C隊列是先進先出的,棧是先進后出的,2者的區(qū)別一定要搞清楚。(1)算法的空間復(fù)雜度是指A)算法程序的長度B)算法程序中的指令條數(shù)C)執(zhí)行算法程序所占的存儲空間D)算法執(zhí)行過程中所需要的存儲空間【答案】D【解析】算法的空間復(fù)雜度一般是指這個算法執(zhí)行時所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。〔2〕線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種A)隨機結(jié)構(gòu)B)順序結(jié)構(gòu)C)索引結(jié)構(gòu)D)散列結(jié)構(gòu)【答案】B【解析】線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的每一個存儲結(jié)點不僅含有一個數(shù)據(jù)元素,還包括指針,每一個指針指向一個與本結(jié)點有邏輯關(guān)系的結(jié)點。此類存儲方式屬于順序存儲。〔3〕設(shè)有以下二叉樹:對此二叉樹先序遍歷的結(jié)果是A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA【答案】C【解析】二叉樹的遍歷分為先序、中序、后序三種不同方式。此題要求先序遍歷;遍歷順序應(yīng)該為:訪問根結(jié)點->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。〔1〕算法分析的目的是______。A〕找出數(shù)據(jù)結(jié)構(gòu)的合理性 B〕找出算法中輸入和輸出之間的關(guān)系C〕分析算法的易懂性和可靠性 D〕分析算法的效率以求改良答案:D評析:算法分析是指對一個算法的運行時間和占用空間做定量的分析,一般計算出相應(yīng)的數(shù)量級,常用時間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)行效率?!?〕數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應(yīng)采用的算法是______。A〕堆排序 B〕直接插入排序C〕快速排序 D〕直接選擇排序答案:B評析:當(dāng)數(shù)據(jù)表A中每個元素距其最終位置不遠,說明數(shù)據(jù)表A按關(guān)鍵字值根本有序,在待排序序列根本有序的情況下,采用插入排序所用時間最少,故答案為選項B。〔4〕用鏈表表示線性表的優(yōu)點是______。A〕便于插入和刪除操作 B〕數(shù)據(jù)元素的物理順序與邏輯順序相同C〕花費的存儲空間較順序存儲少 D〕便于隨機存取答案:A評析:鏈?zhǔn)酱鎯Y(jié)構(gòu)克服了順序存儲結(jié)構(gòu)的缺點:它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,不需要移動數(shù)據(jù)元素。故鏈?zhǔn)酱鎯Y(jié)構(gòu)下的線性表便于插入和刪除操作。1.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。A、隊列B、線性表C、二叉樹D、棧解析:線性表、棧和隊列等數(shù)據(jù)結(jié)構(gòu)所表達和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素。所以棧又稱后進先出表〔LastInFirstOut〕;隊列可看作是插入在一端進行,刪除在另一端進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最后一個元素一定是最新入隊的元素。因此隊列又稱先進先出表〔FirstInFirstOut〕。此題答案為C。5.以下關(guān)于棧的表達中正確的選項是______。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進先出的線性表D、棧是先進后出的線性表解析:棧是限定在一端進行插入與刪除的線性表。棧是按照"先進后出"的或后進先出的原那么組織數(shù)據(jù)的,因此,棧也被稱為"先進后出"表或"后進先出"表。此題答案是D。7.對長度為N的線性表進行順序查找,在最壞情況下所需要的比擬次數(shù)為______。A、N+1B、NC、(N+1)/2D、N/2解析:在進行順序查找過程中,如果線性表中被查的元素是線性表中的最后一個,或者被查元素根本不在線性表中,那么為了查找這個元素需要與線性表中所有元素進行比擬,這是順序查找最壞的情況。此題答案為B。1.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。A、8B、16C、32D、15解析:根據(jù)二叉樹的性質(zhì):二叉樹第i〔i≥1〕層上至多有2i-1個結(jié)點。得到第5層的結(jié)點數(shù)最多是16。此題答案為B。3.以下表達中正確的選項是______。A、線性表是線性結(jié)構(gòu)B、棧與隊列是非線性結(jié)構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹是線性結(jié)構(gòu)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后間關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個條件:〔1〕有且只有一個根結(jié)點;〔2〕每一個結(jié)點最多有一個前件,也最多有一個后件。那么稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。此題答案是A。7.在以下選項中,哪個不是一個算法一般應(yīng)該具有的根本特征______。A、確定性B、可行性C、無窮性D、擁有足夠的情報解析:作為一個算法,一般應(yīng)具有以下幾個根本特征。1)可行性2)確定性3)有窮性4)擁有足夠的情報此題答案為C。5.在計算機中,算法是指______。A、查詢方法B、加工方法C、解題方案的準(zhǔn)確而完整的描述D、排序方法解析:計算機算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個根本特征:可行性、確定性、有窮性和擁有足夠的情報。此題答案為C。7.在單鏈表中,增加頭結(jié)點的目的是______。A、方便運算的實現(xiàn)B、使單鏈表至少有一個結(jié)點C、標(biāo)識表結(jié)點中首結(jié)點的位置D、說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)解析:頭結(jié)點不僅標(biāo)識了表中首結(jié)點的位置,而且根據(jù)單鏈表〔包含頭結(jié)點〕的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點目的是為了便于運算的實現(xiàn)。此題答案為A。1.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。A、存儲在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲空間量C、數(shù)據(jù)在計算機中的順序存儲方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示解析:此題考查的是數(shù)據(jù)結(jié)構(gòu)的根本概念。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)〔也稱數(shù)據(jù)的物理結(jié)構(gòu)〕。故此題答案為D。2.以下關(guān)于棧的描述中錯誤的選項是______。A、棧是先進后出的線性表B、棧只能順序存儲C、棧具有記憶作用D、對棧的插入與刪除操作中,不需要改變棧底指針解析:此題考查的是棧和隊列。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素。所以棧又稱先進后出表〔FILO-FirstInLastOut〕。線性表可以順序存儲,也可以鏈?zhǔn)酱鎯?,而棧是一種線性表,也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。故此題答案為B。3.對于長度為n的線性表,在最壞情況下,以下各排序法所對應(yīng)的比擬次數(shù)中正確的選項是______。A、冒泡排序為n/2B、冒泡排序為nC、快速排序為n D、快速排序為n(n-1)/2解析:此題考查的是根本排序算法。假設(shè)線性表的長度為n,那么在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后掃描和n/2遍的從后往前掃描,需要比擬次數(shù)為n(n-1)/2??焖倥判蚍ǖ淖顗那闆r比擬次數(shù)也是n(n-1)/2。故此題答案為D。4.對長度為n的線性表進行順序查找,在最壞情況下所需要的比擬次數(shù)為______。A、log2nB、n/2C、nD、n+1解析:此題考查的是順序查找。在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,那么只需做一次比擬就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,那么為了查找這個元素需要與線性表中所有的元素進行比擬,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比擬n次。故此題答案為C。5.以下對于線性鏈表的描述中正確的選項是______。A、存儲空間不一定是連續(xù),且各元素的存儲順序是任意的B、存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面C、存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面D、存儲空間必須連續(xù),且各元素的存儲順序是任意的解析:此題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其根本運算。在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。故此題答案為A。1.算法的時間復(fù)雜度是指______。A、執(zhí)行算法程序所需要的時間B、算法程序的長度C、算法執(zhí)行過程中所需要的根本運算次數(shù)D、算法程序中的指令條數(shù)解析:所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。為了能夠比擬客觀地反映出一個算法的效率,在度量一個算法的工作量時,不僅應(yīng)該與所使用的計算機、程序設(shè)計語言以及程序編制者無關(guān),而且還應(yīng)該與算法實現(xiàn)過程中的許多細節(jié)無關(guān)。為此,可以用算法在執(zhí)行過程中所需根本運算的執(zhí)行次數(shù)來度量算法的工作量。此題答案是C。2.以下表達中正確的選項是______。A、線性表是線性結(jié)構(gòu)B、棧與隊列是非線性結(jié)構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹是線性結(jié)構(gòu)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后間關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個條件:〔1〕有且只有一個根結(jié)點;〔2〕每一個結(jié)點最多有一個前件,也最多有一個后件。那么稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。此題答案是A。3.設(shè)一棵完全二叉樹共有699個結(jié)點,那么在該二叉樹中的葉子結(jié)點數(shù)為______。A、349B、350C、255D、351解析:所謂完全二叉樹是指除最后一層外,每一層上的結(jié)點數(shù)均到達最大值;在最后一層上只缺少右邊的假設(shè)干結(jié)點。具有n個結(jié)點的完全二叉樹,其父結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去父結(jié)點數(shù)。此題n=699,故父結(jié)點數(shù)等于int(699/2)=349,葉子結(jié)點數(shù)等于699-349=350。此題答案是B。1.算法的空間復(fù)雜度是指______。A、算法程序的長度B、算法程序中的指令條數(shù)C、算法程序所占的存儲空間D、算法執(zhí)行過程中所需要的存儲空間解析:一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。此題答案是D。2.以下關(guān)于棧的表達中正確的選項是______。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進先出的線性表D、棧是先進后出的線性表解析:棧是限定在一端進行插入與刪除的線性表。棧是按照"先進后出"的或后進先出的原那么組織數(shù)據(jù)的,因此,棧也被稱為"先進后出"表或"后進先出"表。此題答案是D。3.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。A、32B、31C、16D、15解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每層上的所有結(jié)點都有兩個子結(jié)點。這就是說,在滿二叉樹中,每一層上的結(jié)點數(shù)都到達最大值,即在滿二叉樹的第K層上有2K-1個結(jié)點,且深度為m的滿二叉樹有2m在滿二叉樹中,最后一層的結(jié)點個數(shù)就是葉子結(jié)點的個數(shù),此題中深度為5,故葉子結(jié)點數(shù)為25-1=24=16。此題答案是C。1.算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成______。A、循環(huán)、分支、遞歸B、順序、循環(huán)、嵌套C、循環(huán)、遞歸、選擇D、順序、選擇、循環(huán)解析:算法的控制結(jié)構(gòu)給出了算法的根本框架,它不僅決定了算法中各操作的執(zhí)行順序,而且也直接反映了算法的設(shè)計是否符合結(jié)構(gòu)化原那么。一個算法一般都可以用順序、選擇、循環(huán)三種根本控制結(jié)構(gòu)組合而成。此題答案為D。2.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。A、數(shù)據(jù)所占的存儲空間量B、數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示C、數(shù)據(jù)在計算機中的順序存儲方式D、存儲在外存中的數(shù)據(jù)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)。此題答案為B。3.設(shè)有以下二叉樹:對此二叉樹中序遍歷的結(jié)果為______。A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA解析:所謂中序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。此題答案為B。1.在計算機中,算法是指______。A、查詢方法B、加工方法C、解題方案的準(zhǔn)確而完整的描述D、排序方法解析:計算機算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個根本特征:可行性、確定性、有窮性和擁有足夠的情報。此題答案為C。2.棧和隊列的共同點是______。A、都是先進后出B、都是先進先出C、只允許在端點處插入和刪除元素D、沒有共同點解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種"后進先出"的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種"先進先出"的線性表。此題答案為C。3.二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______。A、cedbaB、acbedC、decabD、deabc解析:依據(jù)后序遍歷序列可確定根結(jié)點為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成。求得該二叉樹的前序遍歷序列為選項A。此題答案為A。4.在以下幾種排序方法中,要求內(nèi)存量最大的是______。A、插入排序B、選擇排序C、快速排序D、歸并排序解析:快速排序的根本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟毩⒌膬删植?,其中一局部記錄的關(guān)鍵字均比另一局部記錄的關(guān)鍵字小,再分別對這兩局部記錄繼續(xù)進行排序,以到達整個序列有序;插入排序的根本操作是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的根本思想是:掃描整個線性表,從中選出最小的元素,將它交換到表的最前面〔這是它應(yīng)有的位置〕,然后對剩下的子表采用同樣的方法,直到表空為止;歸并排序是將兩個或兩個以上的有序表組合成一個新的有序表。此題答案為D。1.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的______。A、存儲結(jié)構(gòu)B、物理結(jié)構(gòu)C、邏輯結(jié)構(gòu)D、物理和存儲結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計算機中的存儲表示形式。此題答案為C。2.棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,那么出棧序列可能是______。A、ABCEDB、DBCEAC、CDABED、DCBEA解析:棧操作原那么是"后進先出",棧底至棧頂依次存放元素A、B、C、D,那么說明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。此題答案為D。3.線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是______。A、順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)B、隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)C、隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)D、任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)解析:順序存儲結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(i-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈?zhǔn)酱鎯Y(jié)構(gòu),要對某結(jié)點進行存取,都得從鏈的頭指針指向的結(jié)點開始,這是一種順序存取的存儲結(jié)構(gòu)。此題答案為B。4.在單鏈表中,增加頭結(jié)點的目的是______。A、方便運算的實現(xiàn)B、使單鏈表至少有一個結(jié)點C、標(biāo)識表結(jié)點中首結(jié)點的位置D、說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)解析:頭結(jié)點不僅標(biāo)識了表中首結(jié)點的位置,而且根據(jù)單鏈表〔包含頭結(jié)點〕的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點目的是為了便于運算的實現(xiàn)。此題答案為A。1.下面表達正確的選項是______。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B、算法的空間復(fù)雜度是指算法程序中指令〔或語句〕的條數(shù)C、算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止D、以上三種描述都不對解析:算法的設(shè)計可以避開具體的計算機程序設(shè)計語言,但算法的實現(xiàn)必須借助程序設(shè)計語言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計算機科學(xué)的兩個重要支柱。它們是一個不可分割的整體。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個算法必須在執(zhí)行有限的步驟以后結(jié)束。此題答案為C。2.設(shè)一棵完全二叉樹共有699個結(jié)點,那么在該二叉樹中的葉子結(jié)點數(shù)為______。A、349B、350C、255D、351解析:所謂完全二叉樹是指除最后一層外,每一層上的結(jié)點數(shù)均到達最大值;在最后一層上只缺少右邊的假設(shè)干結(jié)點。具有n個結(jié)點的完全二叉樹,其父結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去父結(jié)點數(shù)。此題n=699,故父結(jié)點數(shù)等于int(699/2)=349,葉子結(jié)點數(shù)等于699-349=350。此題答案是B。9.數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應(yīng)采用的算法是______。A、堆排序B、直接插入排序C、快速排序D、直接選擇排序解析:當(dāng)數(shù)據(jù)表A中每個元素距其最終位置不遠,說明數(shù)據(jù)表A按關(guān)鍵字值根本有序,在待排序序列根本有序的情況下,采用插入排序所用時間最少。此題答案為B。二、填空題〔1〕問題處理方案的正確而完整的描述稱為_____?!敬鸢浮克惴ɑ虺绦蚧蛄鞒虉D【解析】算法是問題處理方案正確而完整的描述(2)對長度為10的線性表進行冒泡排序,最壞情況下需要比擬的次數(shù)為____。【答案】45【解析】在冒泡排序中,最壞情況下,需要比擬的次數(shù)為n(n-1/2),也就是:10*〔lO-1)/2=45〔3〕算法復(fù)雜度主要包括時間復(fù)雜度和____復(fù)雜度。【答案】空間【解析】算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間?!?〕一棵二叉樹第六層〔根結(jié)點為第一層〕的結(jié)點數(shù)最多為_______個?!敬鸢浮?2【解析】二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點。此,26-1等于32。所以答案為32?!?〕數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。【答案】存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)【解析】數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間,供隊列循環(huán)使用??芍?,循環(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。(6)以下軟件系統(tǒng)結(jié)構(gòu)圖的寬度為____。ABABCDEF【答案】3【解析】題目中的圖形是倒置的樹狀結(jié)構(gòu),這是用層次圖表示的軟件結(jié)構(gòu)。結(jié)構(gòu)圖中同一層模塊的最大模塊個數(shù)稱為結(jié)構(gòu)的寬度,它表示控制的總分布。根據(jù)上述結(jié)構(gòu)圖寬度的定義,從圖中可以看出,第二層的模塊個數(shù)最多,即為3。因此,這個系統(tǒng)結(jié)構(gòu)圖的寬度就為3。(7)按“先進后出〞原那么組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是____。【答案】?;騍tack【解析】棧和隊列是兩種特殊的線性表,其特殊性在于對它們的操作只能在表的端點進行。棧中的數(shù)據(jù)按照后進先出的原那么進行組織,而隊列中的數(shù)據(jù)是按照先進先出的原那么進行組織。因此,此題的正確答案是棧(Stack)。(8)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于___。【答案】線性結(jié)構(gòu)【解析】數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),其中隊列是屬于線性結(jié)構(gòu)。隊列有兩種存儲結(jié)構(gòu),一種是順序存儲結(jié)構(gòu),稱為順序隊列;另一種是鏈?zhǔn)酱鎯Y(jié)構(gòu),稱為鏈隊列。題目中所說的帶鏈的隊列就是指鏈隊列。無論隊列采取哪種存儲結(jié)構(gòu),其本質(zhì)還是隊列,還屬于一種線性結(jié)構(gòu)。因此,此題的正確答案是線性結(jié)構(gòu)。(9)在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為_______?!敬鸢浮?3或26-1【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中滿二叉樹的性質(zhì)。在滿二叉樹中,每層結(jié)點都是滿的,即每層結(jié)點都具有最大結(jié)點數(shù)。深度為k的滿二叉樹,一共有2k-1個結(jié)點,其中包括度為2的結(jié)點。因此,深度為7的滿二叉樹,一共有27-1個結(jié)點,即127個結(jié)點。根據(jù)二叉樹的另一條性質(zhì),對任意一棵二叉樹,假設(shè)終端結(jié)點〔即葉子結(jié)點〕數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2那么n0=n2+1。設(shè)嘗試為7的滿二叉樹中,度為2的結(jié)點個數(shù)為x,那么改樹中中子結(jié)點的個數(shù)為x+1。那么應(yīng)滿足x+(x+1)=127,解該方程得到,x的值為63。結(jié)果上述分析可知,在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為63。(10)線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊列是一種特殊的線性表,循環(huán)隊列是隊列的_____存儲結(jié)構(gòu)?!敬鸢浮宽樞颉窘馕觥看祟}考查數(shù)據(jù)結(jié)構(gòu)的隊列。隊列是一種特殊的線性表,即限定在表的一端進行刪除,在表的另一端進行插入操作的線性表。允許刪除的一端叫做隊頭,允許插入的一端叫做隊尾。線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。當(dāng)隊列用鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)時,就稱為鏈隊列;當(dāng)隊列用順序存儲結(jié)構(gòu)實現(xiàn)時,就稱為循環(huán)表。因此,此題劃線處應(yīng)填入“順序〞。(11)對以下二叉樹進行中序遍歷的結(jié)果為____。【答案】ACBDFEHGP【解析】此題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷。根據(jù)對二叉樹根的訪問先后順序不同,分別稱為前序遍歷、中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹中也按照同樣的規(guī)律進行遍歷。下面就是中序遍歷方法的遞歸定義。當(dāng)二叉樹的根不為空時,依次執(zhí)行如下3個操作:(1)按中序遍歷左子樹。(2)訪問根結(jié)點。(3)按中序遍歷右子樹。根據(jù)如上前序遍歷規(guī)那么,來遍歷此題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點A,然后訪問c,接著訪問c的右子樹,同樣按中序遍歷c的右子樹,先訪問結(jié)點B,然后訪問結(jié)點D,因為結(jié)點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點F的左子樹。然后訪問根結(jié)點F,接下來遍歷F的右子樹.同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,那么訪問結(jié)點E,然后訪問結(jié)點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此.劃線處應(yīng)填入“ACBDFEHGP〞?!?1〕用鏈表表示線性表的突出優(yōu)點是。答案:插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高解析:為了克服順序表中插入和刪除時需要移動大量數(shù)據(jù)元素的缺點,引入了鏈?zhǔn)酱鎯Y(jié)構(gòu)。鏈表表示線性表的突出優(yōu)點是插入和刪除操作方便,不必移動數(shù)據(jù)元素,執(zhí)行效率高。〔11〕算法的根本特征是可行性、確定性、和擁有足夠的情報。答案:有窮性解析:算法是指解題方案的準(zhǔn)確而完整的描述。它有4個根本特征,分別是可行性、確定性、有窮性和擁有足夠的情報?!?2〕在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比擬次數(shù)為。答案:log2n解析:對于長度為n的有序線性表,在最壞情況下,二分查找只需要比擬log2n次,而順序查找需要比擬n次?!?1〕數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于。答案:存儲結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式。在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間的前后件關(guān)系的信息。〔11〕冒泡排序算法在最好的情況下的元素交換次數(shù)為。答案:0解析:根據(jù)冒泡排序算法思想可知,假設(shè)待排序的初始序列為“正序〞序列,那么只需進行一趟排序,在排序過程中進行n-1次關(guān)鍵字間的比擬,且不移動和交換記錄,這種情況是冒泡排序的最好情況,故冒泡排序算法在最好的情況下的元素交換次數(shù)為0?!?2〕在最壞情況下,堆排序需要比擬的次數(shù)為。答案:O〔nlog2n〕〔13〕假設(shè)串s="MathTypes",那么其子串的數(shù)目是。答案:46解析:串s中共有9個字符,由于串中字符各不相同,那么其子串中有0個字符的1個〔空串〕,1個字符的9個,2個字符的8個,3個字符的7個,4個字符的6個,5個字符的5個,6個字符的4個,7個字符的3個,8個字符的2個,9個字符的1個,共有1+2+3+4+5+6+7+8+9+1=46?!?1〕在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是。答案:時間復(fù)雜度和空間復(fù)雜度〔12〕將代數(shù)式轉(zhuǎn)換成程序設(shè)計中的表達式為。答案:(x+y*y)/(a+b)〔11〕數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和兩大類。答案:非線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和非線性結(jié)構(gòu)兩大類?!?2〕順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置的存儲單元中。答案:也相鄰解析:常用的存儲表示方法有4種,順序存儲、鏈?zhǔn)酱鎯?、索引存儲、散列存儲。其中,順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置也相鄰的存儲單元中。〔11〕當(dāng)線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是。答案:邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰解析:順序存儲結(jié)構(gòu)的主要特點是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點間的相鄰關(guān)系是一致的。52.設(shè)一棵完全二叉樹共有500個結(jié)點,那么在該二叉樹中有______個葉子結(jié)點。解析:所謂完全二叉樹是指除最后一層外,每一層上的結(jié)點數(shù)均到達最大值;在最后一層上只缺少右邊的假設(shè)干結(jié)點。具有n個結(jié)點的完全二叉樹,其父結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去父結(jié)點數(shù)。此題n=500,故父結(jié)點數(shù)等于int(500/2)=250,葉子結(jié)點數(shù)等于500-250=250。標(biāo)準(zhǔn)答案為:25051.算法的根本特征是可行性、確定性、______和擁有足夠的情報。解析:算法是指解題方案的準(zhǔn)確而完整的描述。它有4個根本特征,分別是可行性、確定性、有窮性和擁有足夠的情報。標(biāo)準(zhǔn)答案為:有窮性52.順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置______的存儲單元中。解析:常用的存儲表示方法有4種,順序存儲、鏈?zhǔn)酱鎯Α⑺饕鎯?、散列存儲。其中,順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置也相鄰的存儲單元中。標(biāo)準(zhǔn)答案為:相鄰〔1〕算法的復(fù)雜度主要包括空間復(fù)雜度和【1】復(fù)雜度。【答案】空間【解析】算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度?!?〕在線性結(jié)構(gòu)中,隊列的操作順序是先進先出,而棧的操作順序是【2】。【答案】先進后出【解析】隊列和棧都是線性結(jié)構(gòu),但是不同之處在于隊列的操作順序是先進先出,而棧的操作順序是先進后出。〔2〕在最壞情況下,堆排序需要比擬的次數(shù)為【2】。答案:O(nlog2n)評析:在最壞情況下,冒泡排序所需要的比擬次數(shù)為n(n-1)/2;簡單插入排序所需要的比擬次數(shù)為n(n-1)/2;希爾排序所需要的比擬次數(shù)為O〔n1.5〕;堆排序所需要的比擬次數(shù)為O(nlog2n)?!?〕假設(shè)串s="Program",那么其子串的數(shù)目是【3】。答案:29評析:串s中共有7個字符,由于串中字符各不相同,那么其子串中有0個字符的1個〔空串〕,1個字符的7個,2個字符的6個,3個字符的5個,4個字符的4個,5個字符的3個,6個字符的2個,7個字符的1個,共有1+2+3+4+5+6+7+1=29。51.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的______。解析:算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。標(biāo)準(zhǔn)答案為:空間復(fù)雜度和時間復(fù)雜度52.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的______以及對數(shù)據(jù)的操作運算。解析:數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。標(biāo)準(zhǔn)答案為:存儲結(jié)構(gòu)53在最壞情況下,冒泡排序的時間復(fù)雜度為______。解析:冒泡排序法是一種最簡單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長度為n,那么在最壞的情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比擬次數(shù)為n(n-1)/2。標(biāo)準(zhǔn)答案為:n(n-1)/2或n*(n-1)/2或O(n(n-1)/2)或O(n*(n-1)/2)54.順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置______的存儲單元中。解析:常用的存儲表示方法有4種,順序存儲、鏈?zhǔn)酱鎯?、索引存儲、散列存儲。其中,順序存儲方法是把邏輯上相鄰的結(jié)點存儲在物理位置也相鄰的存儲單元中。標(biāo)準(zhǔn)答案為:相鄰52.在先左后右的原那么下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、______遍歷和后序遍歷。標(biāo)準(zhǔn)答案為:中序解析:在先左后右的原那么下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。55.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的______以及對數(shù)據(jù)的操作運算。標(biāo)準(zhǔn)答案為:存儲結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。50.算法具有五個特性,以下選項中不屬于算法特性的是______。A、有窮性B、簡潔性C、可行性D、確定性解析:此題考查的是算法的特性。有窮性、確定性、有零個或多個輸入、有一個或多個輸出、有效性是算法的五大特性。故此題答案為B。51.某二叉樹中度為2的結(jié)點有18個,那么該二叉樹中有個葉子結(jié)點。標(biāo)準(zhǔn)答案為:19解析:此題考查的是二叉樹的定義及其存儲結(jié)構(gòu)。二叉樹的性質(zhì)3:在任意一棵二叉樹中,度為0的結(jié)點〔即葉子結(jié)點〕總是比度為2的結(jié)點多一個。此題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。55.問題處理方案的正確而完整的描述稱為。標(biāo)準(zhǔn)答案為:算法此題考查的是算法的根本概念。解析:所謂算法是指解題方案的準(zhǔn)確而完整的描述。51.在先左后右的原那么下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、______遍歷和后序遍歷。標(biāo)準(zhǔn)答案為:中序解析:在先左后右的原那么下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。51.設(shè)一棵完全二叉樹共有500個結(jié)點,那么在該二叉樹中有______個葉子結(jié)點。標(biāo)準(zhǔn)答案為:250解析:所謂完全二叉樹是指除最后一層外,每一層上的結(jié)點數(shù)均到達最大值;在最后一層上只缺少右邊的假設(shè)干結(jié)點。具有n個結(jié)點的完全二叉樹,其父結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去父結(jié)點數(shù)。此題n=500,故父結(jié)點數(shù)等于int(500/2)=250,葉子結(jié)點數(shù)等于500-250=250。52.在最壞情況下,冒泡排序的時間復(fù)雜度為______。標(biāo)準(zhǔn)答案為:n(n-1)/2或n*(n-1)/2或O(n(n-1)/2)或O(n*(n-1)/2)解析:冒泡排序法是一種最簡單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長度為n,那么在最壞的情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比擬次數(shù)為n(n-1)/2。51.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的______結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。標(biāo)準(zhǔn)答案為:邏輯解析:數(shù)據(jù)結(jié)構(gòu)是指帶有結(jié)構(gòu)的數(shù)據(jù)元素的集合。它包括數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存

溫馨提示

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

評論

0/150

提交評論