版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章數(shù)據(jù)結(jié)構(gòu)
一、選擇題
(1)下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是
A)順序存儲(chǔ)的有序線性表B)線性鏈表
C)二叉鏈表D)有序線性鏈表
【答案】A
【解析】二分查找只適用于順序存儲(chǔ)的有序表。在此所說的有序表是指線性表中的元素按值非遞減排列(即
從小到大.但允許相鄰元素值相等)的。選項(xiàng)A正確。
(2)下列關(guān)于棧的描述正確的是
A)在棧中只能插入元素而不能刪除元素
B)在棧中只能刪除元素而不能插入元素
C)棧是特殊的線性表,只能在一端插入或刪除元素
D)棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
【答案】C
【解析】棧是一種特殊的線性表,其插入與刪除運(yùn)算都只在線性表的一端進(jìn)行。由此可見,選項(xiàng)A、選項(xiàng)
B和選項(xiàng)D錯(cuò)誤,正確答案是選項(xiàng)C。
(3)下列敘述中正確的是
A)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)
B)數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
0)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率
【答案】D
【解析】一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈
接、索引等存儲(chǔ)結(jié)構(gòu)。而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。由此可見,選項(xiàng)D的說法正
確。
⑷算法執(zhí)行過程中所需要的存儲(chǔ)空間稱為算法的
A)時(shí)間復(fù)雜度B)計(jì)算工作量C)空間復(fù)雜度D)工作空間
【答案】c
【解析】算法執(zhí)行時(shí)所需要的存儲(chǔ)空間,包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間
以及算法執(zhí)行過程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)
結(jié)構(gòu)所需要的附加存儲(chǔ)空間。這些存儲(chǔ)空間共稱為算法的空間復(fù)雜度。
(5)下列關(guān)于隊(duì)列的敘述中正確的是
A)在隊(duì)列中只能插入數(shù)據(jù)B)在隊(duì)列中只能刪除數(shù)據(jù)
C)隊(duì)列是先進(jìn)先出的線性表D)隊(duì)列是先進(jìn)后出的線性表
【答案】c
【解析】對(duì)隊(duì)列可以進(jìn)行插入和刪除數(shù)據(jù)的操作,只是插入數(shù)據(jù)只能在隊(duì)尾,刪除數(shù)據(jù)只能在隊(duì)頭。所以
隊(duì)列是先進(jìn)先出的線性表。
(6)設(shè)有下列二叉樹:
對(duì)此二叉樹后序遍歷的結(jié)果為
A)ABCDEFB)BDAECFC)ABDCEFD)DBEFCA
【答案】D
【解析】二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷。其遍歷順序應(yīng)該為:
后序遍歷左子樹一》后序遍歷右子樹一〉訪問根結(jié)點(diǎn)。按照定義,后序遍歷序列是DBEFCA,故答案為D。
(7)下列敘述中正確的是()
A)程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)
B)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D)以上三種說法都不對(duì)
【答案】A
【解析】本題考查程序效率。程序效率是指程序運(yùn)行速度和程序占用的存儲(chǔ)空間。影響程序效率的因素是
多方面的,包括程序的設(shè)計(jì)、使用的算法、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的基礎(chǔ)上,選擇一種
合適的存儲(chǔ)結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費(fèi)的時(shí)間少,占用的存儲(chǔ)空間少,即提高程序的效率。因此,本
題選項(xiàng)A的說法是正確的。
(8)下列敘述中正確的是()
A)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對(duì)應(yīng)的
B)由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)
C)程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線線結(jié)構(gòu)
D)以上三種說法都不對(duì)
【答案】【)
【解析】本題考查數(shù)據(jù)結(jié)構(gòu)的基本知識(shí)。
數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀
結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲(chǔ)器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲(chǔ)
結(jié)構(gòu)在計(jì)算機(jī)中有兩種,即順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。順序存儲(chǔ)結(jié)構(gòu)是把數(shù)據(jù)元素存儲(chǔ)在一塊連續(xù)
地址空間的內(nèi)存中:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是使用指針把相互直接關(guān)聯(lián)的節(jié)點(diǎn)鏈接起來。因此,這兩種存儲(chǔ)結(jié)構(gòu)
都是線性的。可見,邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不是一一對(duì)應(yīng)的。因此,選項(xiàng)A和選項(xiàng)B的說法都是錯(cuò)誤的。
無論數(shù)據(jù)的邏輯結(jié)構(gòu)是線性的還是非線性的,只能選擇順序存儲(chǔ)結(jié)構(gòu)或鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)來實(shí)現(xiàn)存儲(chǔ)。程序設(shè)
計(jì)語言中,數(shù)組是內(nèi)存中一段連續(xù)的地址空間,可看作是順序存儲(chǔ)結(jié)構(gòu)。可以用數(shù)組來實(shí)現(xiàn)樹型邏輯結(jié)構(gòu)
的存儲(chǔ),比如二叉樹。因此,選項(xiàng)c的說法是錯(cuò)誤的
(9)冒泡排序在最壞情況下的比較次數(shù)是()
A)n(n+l)/2B)nloginC)n(n-1)/2D)n/2
【答案】C
【解析】冒泡排序的基本思想是:將相鄰的兩個(gè)元素進(jìn)行比較,如果反序,則交換;對(duì)于?個(gè)待排序的序
列,經(jīng)一-趟排序后,最大值的元素移動(dòng)到最后的位置,其他值較大的元素也向最終位置移動(dòng),此過程稱為
一趟冒泡。對(duì)于有n個(gè)數(shù)據(jù)的序列,共需n-1趟排序,第i趟對(duì)從1到n-i個(gè)數(shù)據(jù)進(jìn)行比較、交換。冒泡
排序的最壞情況是待排序序列逆序,第1趟比較n-1次,第2趟比較n-2次。依此類推,最后趟比較1次,
一共進(jìn)行nT趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是(n-1)+(n-2)+…+1,結(jié)果為n(n-l)/2。
本題的正確答案是選項(xiàng)c。
(10)一棵二叉樹中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為()
A)219B)221C)229D)231
【答案】A
【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下?條性質(zhì),即:對(duì)任意一棵二叉樹,若終端
結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n°,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為m,則n產(chǎn)m+l。
根據(jù)這條性質(zhì)可知,若二叉樹中有70個(gè)葉子結(jié)點(diǎn),則其度為2的結(jié)點(diǎn)數(shù)為70-1,即69個(gè)。二叉樹的總結(jié)
點(diǎn)數(shù)是度為2、度為1和葉子結(jié)點(diǎn)的總和,因此,題目中的二叉樹總結(jié)點(diǎn)數(shù)為69+80+70,即219。因此,
本題的正確答案是選項(xiàng)Ao
(11)下列敘述中正確的是()
A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)
B)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)
【答案】B
【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識(shí)和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而
數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都影響算
法的效率。選項(xiàng)A的說法是錯(cuò)誤的。算法的時(shí)間復(fù)雜度是指算法在計(jì)算機(jī)內(nèi)執(zhí)行時(shí)所需時(shí)間的度量;與時(shí)
間復(fù)雜度類似,空間復(fù)雜度是指算法在計(jì)算機(jī)內(nèi)執(zhí)行時(shí)所需存儲(chǔ)空間的度量。因此,選項(xiàng)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)。存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲(chǔ)器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲(chǔ)結(jié)構(gòu)
在計(jì)算機(jī)中有兩種,即順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)??梢姡壿嫿Y(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不是一?對(duì)應(yīng)的。因此,
選項(xiàng)c的說法是錯(cuò)誤的。有時(shí)人們?yōu)榱颂岣咚惴ǖ臅r(shí)間復(fù)雜度,而以犧牲空間復(fù)雜度為代價(jià)。但是,這兩
者之間沒有必然的聯(lián)系。因此,選項(xiàng)D的說法是錯(cuò)誤的。
(12)下列關(guān)于算法的時(shí)間復(fù)雜度陳述正確的是
A)算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間
B)算法的時(shí)間復(fù)雜度是指算法程序的長度
C)算法的時(shí)間復(fù)雜度是指算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
D)算法的時(shí)間復(fù)雜度是指算法程序中的指令條數(shù)
【答案】C
【解析】算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,也就是算法在執(zhí)行過程中所執(zhí)行的基本運(yùn)
算的次數(shù),而不是指程序運(yùn)行需要的時(shí)間或是程序的長度。
(13)下列關(guān)于棧的敘述中正確的是
A)在棧中只能插入數(shù)據(jù)B)在棧中只能刪除數(shù)據(jù)
C)棧是先進(jìn)先出的線性表D)棧是先進(jìn)后出的線性表
【答案】D
【解析】對(duì)??蛇M(jìn)行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能是在棧頂,是?種特殊的
線性表。所以棧是先進(jìn)后出的線性表。
(14)設(shè)有下列二叉樹:
對(duì)此二叉樹中序遍歷的結(jié)果為
A)ABCDEFB)DAECFC)BDAECFD)DBEFCA
【答案】C
【解析】二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍歷,其遍歷順序應(yīng)該為:中
序遍歷左子樹->訪問根結(jié)點(diǎn)->中序遍歷右子樹。按照定義,中序遍歷序列是BDAECF,故答案為B。
(15)按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是
A)隊(duì)列B)棧
C)雙向鏈表D)二叉樹
【答案】B
【解析】“后進(jìn)先出”表示最后被插入的元素最先能被刪除。選項(xiàng)A中,隊(duì)列是指允許在一端進(jìn)行插入、
而在另一端進(jìn)行刪除的線性表,在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后
插入的元素將最后才能被刪除,隊(duì)列又稱為“先進(jìn)先出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則:選
項(xiàng)B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元
素,從而也是最后才能被刪除的元素。隊(duì)列和棧都屬于線性表,它們具有順序存儲(chǔ)的特點(diǎn),所以才有“先
進(jìn)先出”和“后進(jìn)先出”的數(shù)據(jù)組織方式。雙向鏈表使用鏈?zhǔn)酱鎯?chǔ)方式.二叉樹也通常采用鏈?zhǔn)酱鎯?chǔ)方式,
它們的存儲(chǔ)數(shù)據(jù)的空間可以是不連續(xù)的,各個(gè)數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一
致。所以選項(xiàng)c和選項(xiàng)D錯(cuò)。
(16)下列敘述中正確的是
A)線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B)棧與隊(duì)列是非線性結(jié)構(gòu)
C)雙向鏈表是非線性結(jié)構(gòu)
D)只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)
【答案】A
【解析】一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足下列兩個(gè)條件:(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一
個(gè)前件,也最多有一個(gè)后件。則稱為線性結(jié)構(gòu)。線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),選項(xiàng)A的說法是正確
的。棧與隊(duì)列是特殊的線性表,它們也是線性結(jié)構(gòu),選項(xiàng)B的說法是錯(cuò)誤的:雙向鏈表是線性表的鏈?zhǔn)酱?/p>
儲(chǔ)結(jié)構(gòu),其對(duì)應(yīng)的邏輯結(jié)構(gòu)也是線性結(jié)構(gòu),而不是非線性結(jié)構(gòu),選項(xiàng)c的說法是錯(cuò)誤的;二又樹是非線性
結(jié)構(gòu),而不是線性結(jié)構(gòu),選項(xiàng)D的說法是錯(cuò)誤的。因此,本題的正確答案為A
(17)對(duì)如下二叉樹
進(jìn)行后序遍歷的結(jié)果為
A)ABCDEFB)DBEAFC
C)ABDECFD)DEBFCA
【答案】D
【解析】二叉樹后序遍歷的簡單描述如下:若二叉樹為空,則結(jié)束返回。否則(1)后序遍歷左子樹;(2)
后序遍歷右子樹;(3)訪問根結(jié)點(diǎn)。也就是說,后序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這
三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn),并且,在遍歷左、右子樹時(shí),仍然先遍歷
左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。根據(jù)后序遍歷的算法,后序遍歷的結(jié)果為DEBFCA。
(18)下列對(duì)隊(duì)列的敘述正確的是()
A)隊(duì)列屬于非線性表
B)隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)
0隊(duì)列在隊(duì)尾刪除數(shù)據(jù)
D)隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)
【答案】D
【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的基本知識(shí)。隊(duì)列是一種限定性的線性表,它只允許在表的一端插入
元素,而在另一端刪除元素,所以隊(duì)列具有先進(jìn)先出的特性。在隊(duì)列中,允許插入元素的一端叫做隊(duì)尾,
允許刪除的一端則稱為隊(duì)頭。這與日常生活中的排隊(duì)是一致的,最早進(jìn)入隊(duì)列的人最早離開,新來的人
總是加入到隊(duì)尾。因此,本題中只有選項(xiàng)D的說法是正確的。
(19)對(duì)下列二叉樹進(jìn)行前序遍歷的結(jié)果為()
A)DYBEAFCZXB)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ
【答案】c
【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷。根據(jù)對(duì)二叉樹根的訪問先后順序不同,分別稱為前序遍歷、
中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹中也按照同樣的規(guī)律進(jìn)行遍歷。下面就是
前序遍歷方法的遞歸定義。當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:
(1)訪問根結(jié)點(diǎn)
(2)按先序遍歷左子樹
(3)按先序遍歷右子樹
根據(jù)如上前序遍歷規(guī)則,來遍歷本題中的二叉樹。首先訪問根結(jié)點(diǎn),即A,然后遍歷A的左子樹。遍歷左
子樹同樣按照相同的規(guī)則首先訪問根結(jié)點(diǎn)B,然后遍歷B的左子樹。遍歷B的左子樹,首先訪問D,然后
訪問D的左子樹,D的左子樹為空,接下來訪問D的右子樹,即Yo遍歷完B的左子樹后,再遍歷B的右
子樹,即E。到此遍歷完A的左子樹,接下來遍歷A的右子樹。按照同樣的規(guī)則,首先訪問C,然后遍歷
c的左子樹。即F。c的左子樹遍歷完,接著遍歷c的右子樹。首先訪問右子樹的根結(jié)點(diǎn)X,然后訪問X
的左子樹,X的左子樹,即Z,接下來訪問X的右子樹,右子樹為空。至IJ此,把題目的二叉樹進(jìn)行了一次
前序遍歷。遍歷的結(jié)果為ABDYECFXZ,故本題的正確答案為選項(xiàng)C。
(20)某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()
A)n+1B)n-1C)2nD)n/2
【答案】A
【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對(duì)任意?棵二叉樹,若終
端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為解,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n產(chǎn)m+h
根據(jù)這條性質(zhì)可知,若二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為n+1。因此,本題的
正確答案是選項(xiàng)A。
(21)在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為
A)32B)31C)64D)63
【答案】C
【解析】在二叉樹的第k層上,最多有個(gè)結(jié)點(diǎn)。對(duì)于滿二叉樹來說,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到
最大值,即在滿二叉樹的第k層上有2一個(gè)結(jié)點(diǎn)。因此,在深度為7的滿二叉樹中,所有葉子結(jié)點(diǎn)在第7
層上.即其結(jié)點(diǎn)數(shù)為21=2"=64因此.本題的正確答案為c。
(22)下列敘述中正確的是
A)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大
B)一個(gè)算法的空間復(fù)雜度大,則期時(shí)間復(fù)雜度必定小
C)一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D)上述三種說法都不對(duì)
【答案】1)
【解析】時(shí)間復(fù)雜度是指一個(gè)算法執(zhí)行時(shí)間的相對(duì)度量;空間復(fù)雜度是指算法在運(yùn)行過程中臨時(shí)占用所需
存儲(chǔ)空間大小的度量。人們都希望選擇一個(gè)既省存儲(chǔ)空間、又省執(zhí)行時(shí)間的算法。然而,有時(shí)為了加快算
法的運(yùn)行速度,不得不增加空間開銷;有時(shí)為了能有效地存儲(chǔ)算法和數(shù)據(jù),又不得不犧牲運(yùn)行時(shí)間。時(shí)間
和空間的效率往往是一對(duì)矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時(shí)間復(fù)雜度和空
間復(fù)雜度之間雖然經(jīng)常矛盾。但是二者不存在必然的聯(lián)系。因此,選項(xiàng)A、B、c的說法都是錯(cuò)誤的。故本
題的正確答案是D。
(23)在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為
A)63B)64C)6D)7
【答案】B
【解析】在長度為64的有序線性表中,其中的64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序
的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不在線性表中或位于線性表的最后。
按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較。若相等,則查找
成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,
繼續(xù)進(jìn)行比較。依次類推,直到在線性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。
因此,在長度為64的有序線性表中進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案
為B。
(24)對(duì)下列二叉樹
進(jìn)行中序遍歷的結(jié)果是
A)ACBDFEGB)ACBDFGE
C)ABDCGEFD)FCADBEG
IB
【答案】A
【解析】二叉樹的中序遍歷遞歸算法為:如果根不空,則(1)按中序次序訪問左子樹;(2)訪問根結(jié)點(diǎn):(3)
按中序次序訪問右子樹。否則返回。本題中,根據(jù)中序遍歷算法.應(yīng)首先按照中序次序訪問以c為根結(jié)點(diǎn)
的左子樹,然后再訪問根結(jié)點(diǎn)F,最后才訪問以E為根結(jié)點(diǎn)的右子樹。遍歷以c為根結(jié)點(diǎn)的左子樹同樣要
遵循中序遍歷算法,因此中序遍歷結(jié)果為ACBD;然后遍歷根結(jié)點(diǎn)F:遍歷以E為根結(jié)點(diǎn)的右子樹,同樣要
遵循中序遍歷算法,因此中序遍歷結(jié)果為EG。最后把這三部分的遍歷結(jié)果按順序連接起來,中序遍歷結(jié)果
為ACBDFEG。因此,本題的正確答案是A。
(25)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指。
A)存儲(chǔ)在外存中的數(shù)據(jù)B)數(shù)據(jù)所占的存儲(chǔ)空間量
C)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
【答案】D
【解析】數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。所
以選項(xiàng)D正確。
(26)下列關(guān)于棧的描述中錯(cuò)誤的是______。
A)棧是先進(jìn)后出的線性表
B)棧只能順序存儲(chǔ)
C)棧具有記憶作用
D)對(duì)■棧的插入與刪除操作中,不需要改變棧底指針
【答案】B
【解析】本題考核棧的基本概念,我們可以通過排除法來確定本題的答案。棧是限定在一端進(jìn)行插入與刪
除的線性表,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入
的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的,
這便是棧的記憶作用,所以選項(xiàng)A和選項(xiàng)C正確。對(duì)棧進(jìn)行插入和刪除操作時(shí),棧頂位置是動(dòng)態(tài)變化的,
棧底指針不變,選項(xiàng)D正確。由此可見,選項(xiàng)B的描述錯(cuò)誤。
(27)對(duì)于長度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是。
A)冒泡排序?yàn)閚/2B)冒泡排序?yàn)閚
C)快速排序?yàn)閚D)快速排序?yàn)閚(n-l)/2
【答案】D
【解析】假設(shè)線性表的長度為n,在最壞情況下,冒泡排序和快速排序需要的比較次數(shù)為n(n—1)/2。由
此可見,選項(xiàng)D正確。
(28)對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為_____。
A)log2"B)n/2C)nD)n+1
【答案】C
【解析】在長度為n的線性表中進(jìn)行順序查找,最壞情況下需要比較n次。選項(xiàng)C正確。
(29)下列對(duì)于線性鏈表的描述中正確的是。
A)存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的
B)存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C)存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
D)存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
【答案】A
【解析】在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的
邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來確定的。由此可見,選項(xiàng)A的描述正確。
(30)某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有個(gè)葉子結(jié)點(diǎn)。
【答案】19
【解析】二叉樹具有如下性質(zhì):在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多
一個(gè)。根據(jù)題意,度為2的節(jié)點(diǎn)為18個(gè),那么,葉子結(jié)點(diǎn)就應(yīng)當(dāng)是19個(gè)。
(1)線性表若采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),要求內(nèi)存中可用存儲(chǔ)單元的地址
A)必須是連續(xù)的
B)部分地址必須是連續(xù)的
C)一定是不連續(xù)的
D)連續(xù)不連續(xù)都可以
解析:在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的,各數(shù)據(jù)結(jié)點(diǎn)的
存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。故本題答案應(yīng)該為選項(xiàng)D)
(2)在待排序的元素序列基本有序的前提下,效率最高的排序方法是
A)冒泡排序
B)選擇排序
C)快速排序
D)歸并排序
解析:從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不
如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡單選擇排序?yàn)樽罴雅判?/p>
方法,故本題答案應(yīng)該為選項(xiàng)A)。
(3)下列敘述中,錯(cuò)誤的是
A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)
B)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無關(guān)
C)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的
D)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)
解析:一般來說,一種數(shù)據(jù)結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu)。常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索
引等,而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的;一個(gè)數(shù)據(jù)結(jié)構(gòu)中的各數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)
空間中的位置關(guān)系與邏輯關(guān)系是有可能不同的。故本題答案應(yīng)該為選項(xiàng)B)。
(4)希爾排序?qū)儆?/p>
A)交換排序
B)歸并排序
C)選擇排序
D)插入排序
解析:希爾排序的基本思想是把記錄按下標(biāo)的一定增量分組,對(duì)每組記錄使用插入排序,隨增量的逐漸
減小,所分成的組包含的記錄越來越多,到增量的值減小到1時(shí),整個(gè)數(shù)據(jù)合成一組,構(gòu)成一組有序
記錄,故其屬于插入排序方法。故本題答案應(yīng)該為選項(xiàng)D)。
(1)棧和隊(duì)列的共同特點(diǎn)是
A)都是先進(jìn)先出
B)都是先進(jìn)后出
O只允許在端點(diǎn)處插入和刪除元素
D)沒有共同點(diǎn)
解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧
只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插
入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表。故本題答案應(yīng)該為選項(xiàng)C)。
(2)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
A)acbed
B)decab
C)deabc
D)cedba
解析:依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為
空;又由左子樹的后序遍歷序列可知其根結(jié)點(diǎn)為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,
如下圖所示。求得該二叉樹的前序遍歷序列為選項(xiàng)D)。
e
(3)鏈表不具有的特點(diǎn)是
A)不必事先估計(jì)存儲(chǔ)空間
B)可隨機(jī)訪問任一元素
C)插入刪除不需要移動(dòng)元素
D)所需空間與線性表長度成正比
解析:鏈表采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),它克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;
它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也有不足之
處:①每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲(chǔ)空間;②鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種非隨機(jī)存儲(chǔ)結(jié)構(gòu)。故本題
答案應(yīng)該為選項(xiàng)D)。
(6)算法的時(shí)間復(fù)雜度是指
A)執(zhí)行算法程序所需要的時(shí)間
B)算法程序的長度
O算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
D)算法程序中的指令條數(shù)
解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行
算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。故本題答案
應(yīng)該為選項(xiàng)A)。
(1)已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
解析:利用前序和中序遍歷的方法可以確定二叉樹的結(jié)構(gòu),具體步驟如下:①前序遍歷的第一個(gè)結(jié)點(diǎn)A
為樹的根結(jié)點(diǎn);②中序遍歷中A的左邊的結(jié)點(diǎn)為A的左子樹,A右邊的結(jié)點(diǎn)為A的右子樹;③再分別對(duì)
A的左右子樹進(jìn)行上述兩步處理,直到每個(gè)結(jié)點(diǎn)都找到正確的位置。故本題答案應(yīng)該為選項(xiàng)B)。
(2)樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是
A)有且只有1
B)1或多于1
C)0或1
D)至少2
解析:樹是一個(gè)或多個(gè)結(jié)點(diǎn)組成的有限集合,其中一個(gè)特定的結(jié)點(diǎn)稱為根,其余結(jié)點(diǎn)分為若干個(gè)不相交
的集合。每個(gè)集合同時(shí)又是一棵樹。樹有且只有1個(gè)根結(jié)點(diǎn)。故本題答案應(yīng)該為選項(xiàng)A)。
(3)如果進(jìn)棧序列為el,e2,e3,e4,則可能的出棧序列是
A)e3,el,e4,e2
B)e2,e4,e3,el
C)e3,e4,el,e2
D)任意順序
解析:由?!ê筮M(jìn)先出〃的特點(diǎn)可知:A)中el不可能比e2先出,C)中e3不可能比e4先出,且el不可
能比e2先出,D)中棧是先進(jìn)后出的,所以不可能是任意順序。B)中出棧過程如圖所示:
e2e3e1
①?1.。2入棧②e2出棧.。3.。4入棧③。4出棧@。3出棧⑤e1出棧
故本題答案應(yīng)該為選項(xiàng)B)。
(4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是
A)不限制goto語句的使用
B)減少或取消注解行
C)程序越短越好
D)程序結(jié)構(gòu)應(yīng)有助于讀者理解
解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此A)不選;注解行有利于對(duì)程序的理解,不
應(yīng)減少或取消,B)也不選:程序的長短要依照實(shí)際情況而論,而不是越短越好,C)也不選。故本題答案
應(yīng)該為選項(xiàng)D)。
(5)程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和
A)對(duì)象成分
B)變量成分
C)語句成分
D)傳輸成分
解析:程序設(shè)計(jì)語言是用于書寫計(jì)算機(jī)程序的語言,其基本成分有以下4種,數(shù)據(jù)成分:用來描述程序
中的數(shù)據(jù)。運(yùn)算成分:描述程序中所需的運(yùn)算??刂瞥煞郑河脕順?gòu)造程序的邏輯控制結(jié)構(gòu)。傳輸成分:
定義數(shù)據(jù)傳輸成分,如輸入輸出語言。故本題答案應(yīng)該為選項(xiàng)D)。
(1)循環(huán)鏈表的主要優(yōu)點(diǎn)是
A)不再需要頭指針了
B)從表中任一結(jié)點(diǎn)出發(fā)都能訪問到整個(gè)鏈表
C)在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開
D)已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件
解析:循環(huán)鏈表就是將單向鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使整個(gè)鏈表構(gòu)成一個(gè)環(huán)形,這樣的
結(jié)構(gòu)使得從表中的任一結(jié)點(diǎn)出發(fā)都能訪問到整個(gè)鏈表。故本題答案應(yīng)該為選項(xiàng)B)。
(2)棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可
能是
A)ABCED
B)DCBEA
C)DBCEA
D)CDABE
解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后
進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。故本題答案應(yīng)該為選項(xiàng)
B)?
(3)對(duì)長度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為。
A)N+1
B)N
0(N+D/2
D)N/2
解析:[答案]B,很簡單,我們的二級(jí)程序設(shè)計(jì)語言書中都有此算法,另外還要掌握二分法查找,這也是
我們二級(jí)中常考的。那么二分法最壞的情況為多少次呢?log2"的最小整數(shù)值。比如n為4,最壞的
情況要比較3次;n為18,最壞的情況要比較5次。
(1)下列敘述中正確的是
A)線性表是線性結(jié)構(gòu)
B)棧與隊(duì)列是非線性結(jié)構(gòu)
C)線性鏈表是非線性結(jié)構(gòu)
D)二叉樹是線性結(jié)構(gòu)
解析:線性表是一種線性結(jié)構(gòu),數(shù)據(jù)元素在線性表中的位置只取決于它們自己的序號(hào),即數(shù)據(jù)元素之間
的相對(duì)位置是線性的;棧、隊(duì)列、線性鏈表實(shí)際上也是線性表,故也是線性結(jié)構(gòu);樹是一種簡單的非線性
結(jié)構(gòu)。故本題答案應(yīng)該為選項(xiàng)A)。
(2)非空的循環(huán)單鏈表head的尾結(jié)點(diǎn)(由p所指向),滿足
A)p->next-NULL
B)p==NULL
C)p->next=head
D)p=head
解析:循環(huán)鏈表就是將鏈表的最后一個(gè)結(jié)點(diǎn)指向鏈表頭結(jié)點(diǎn)(或第一個(gè)結(jié)點(diǎn)),即p->next=head。故本題
答案應(yīng)該為選項(xiàng)C)。
(3)已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是
A)堆排序
B)直接插入排序
C)快速排序
D)直接選擇排序
解析:當(dāng)數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),說明數(shù)據(jù)表A按關(guān)鍵字值基本有序,在待排序序列基
本有序的情況下,采用插入排序所用時(shí)間最少,故答案為選項(xiàng)B)。
(1)假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為
A)log2n
B)n2
C)0(nl.5)
D)n(n-1)/2
解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從
后往前的掃描,需要的比較次數(shù)為n(n-1)/2o故本題答案應(yīng)該為選項(xiàng)D)。
(2)算法分析的目的是
A)找鋁數(shù)據(jù)結(jié)構(gòu)的合理性
B)找出算法中輸入和輸出之間的關(guān)系
O分析算法的易懂性和可靠性
D)分析算法的效率以求改進(jìn)
解析:算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)量級(jí),常用
時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度,提高算法的
執(zhí)行效率。故本題答案應(yīng)該為選項(xiàng)D)。
(3)線性表L=(al,a2,a3,…ai,…an),下列說法正確的是
A)每個(gè)元素都有一個(gè)直接前件和直接后件
B)線性表中至少要有一個(gè)元素
C)表中諸元素的排列順序必須是由小到大或由大到小
D)除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件
解析:線性表可以為空表;第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件;線性表的定義中,
元素的排列并沒有規(guī)定大小順序。故本題答案應(yīng)該為選項(xiàng)D)。
(4)在單鏈表中,增加頭結(jié)點(diǎn)的目的是
A)方便運(yùn)算的實(shí)現(xiàn)
B)使單鏈表至少有一個(gè)結(jié)點(diǎn)
O標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置
0)說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,
就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)目的是為了便于運(yùn)算的實(shí)現(xiàn)。故本題答案應(yīng)該為選項(xiàng)A)。
(1)算法的空間復(fù)雜度是指
A)算法程序的長度
B)算法程序中的指令條數(shù)
C)算法程序所占的存儲(chǔ)空間
D)執(zhí)行過程中所需要的存儲(chǔ)空間
解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行
算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。故本題答案應(yīng)該
為選項(xiàng)D)。
(2)用鏈表表示線性表的優(yōu)點(diǎn)是
A)便于隨機(jī)存取
B)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少
C)便于插入和刪除操作
D)數(shù)據(jù)元素的物理順序與邏輯順序相同
解析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的
邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。
故本題答案應(yīng)該為選項(xiàng)C)。
(3)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的
A)存儲(chǔ)結(jié)構(gòu)
B)物理結(jié)構(gòu)
C)邏輯結(jié)構(gòu)
D)物理和存儲(chǔ)結(jié)構(gòu)
解析:數(shù)據(jù)結(jié)構(gòu)概念一般包括3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)
的邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。故本題答
案應(yīng)該為選項(xiàng)C)。
(1)由兩個(gè)棧共享一個(gè)存儲(chǔ)空間的好處是
A)減少存取時(shí)間,降低下溢發(fā)生的機(jī)率
B)節(jié)省存儲(chǔ)空間,降低上溢發(fā)生的機(jī)率
C)減少存取時(shí)間,降低上溢發(fā)生的機(jī)率
D)節(jié)省存儲(chǔ)空間,降低下溢發(fā)生的機(jī)率
解析:常常一個(gè)程序中要用到多個(gè)棧,為了不發(fā)生上溢錯(cuò)誤,就必須給每個(gè)棧分配一個(gè)足夠大的存儲(chǔ)空
問。但實(shí)際中,很難準(zhǔn)確地估計(jì),若每個(gè)棧都分配過大的存儲(chǔ)空間,勢必造成系統(tǒng)空間緊張;若讓多個(gè)棧
共用一個(gè)足夠大的連續(xù)存儲(chǔ)空間,則可利用棧的動(dòng)態(tài)特性使他們的存儲(chǔ)空間互補(bǔ)。故本題答案應(yīng)該為選項(xiàng)
B),
(2)設(shè)有兩個(gè)串p和q,求q在p中首次出現(xiàn)位置的運(yùn)算稱作
A)連接
B)模式匹配
C)求子串
D)求串長
解析:子串的定位操作通常稱作串的模式匹配,是各種串處理系統(tǒng)中最重要的操作之一,算法的基本思
想是:從主串的開始字符起和模式的第一個(gè)字符比較,若相等則繼續(xù)比較后續(xù)字符,否則從主串的下一個(gè)
字符起再重新和模式的字符比較,依次類推,直至模式中的每個(gè)字符依次和主串中的一個(gè)連續(xù)的字符序
列相等,稱匹配成功,否則稱匹配不成功。
(3)下列關(guān)于隊(duì)列的敘述中正確的是。
A.在隊(duì)列中只能插入數(shù)據(jù)
B.在隊(duì)列中只能刪除數(shù)據(jù)
C.隊(duì)列是先進(jìn)先出的線性表
D.隊(duì)列是先進(jìn)后出的線性表
解析:C
隊(duì)列是先進(jìn)先出的,棧是先進(jìn)后出的,2者的區(qū)別一定要搞清楚。
(1)算法的空間復(fù)雜度是指
A)算法程序的長度
B)算法程序中的指令條數(shù)
0執(zhí)行算法程序所占的存儲(chǔ)空間
D)算法執(zhí)行過程中所需要的存儲(chǔ)空間
【答案】D
【解析】算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中包括算法程序所占的空間、
輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)
行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。
(2)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種
A)隨機(jī)結(jié)構(gòu)
B)順序結(jié)構(gòu)
C)索引結(jié)構(gòu)
D)散列結(jié)構(gòu)
【答案】B
【解析】線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的每一個(gè)存儲(chǔ)結(jié)點(diǎn)不僅含有一個(gè)數(shù)據(jù)元素,還包括指針,每一個(gè)指針指
向一個(gè)與本結(jié)點(diǎn)有邏輯關(guān)系的結(jié)點(diǎn)。此類存儲(chǔ)方式屬于順序存儲(chǔ)。
(3)設(shè)有下列二叉樹:對(duì)此二叉樹先序遍歷的結(jié)果是
A)ABCDEF
B)DBEAFC
OABDECF
D)DEBFCA
【答案】C
【解析】二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷:遍歷順序應(yīng)該為:訪問
根結(jié)點(diǎn)->先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF。
(1)算法分析的目的是______。
A)找出數(shù)據(jù)結(jié)構(gòu)的合理性B)找出算法中輸入和輸出之間的關(guān)系
C)分析算法的易懂性和可靠性D)分析算法的效率以求改進(jìn)
答案:I)
評(píng)析:算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)量級(jí),常用時(shí)
間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)
行效率。
(3)已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是。
A)堆排序B)直接插入排序
C)快速排序D)直接選擇排序
答案:B
評(píng)析:當(dāng)數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),說明數(shù)據(jù)表A按關(guān)健字值基本有序,在待排序序列基本
有序的情況下,采用插入排序所用時(shí)間最少,故答案為選項(xiàng)B。
(4)用鏈表表示線性表的優(yōu)點(diǎn)是o
A)便于插入和刪除操作B)數(shù)據(jù)元素的物理順序與邏輯順序相同
C)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少D)便于隨機(jī)存取
答案:A
評(píng)析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏
輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。
1.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是。
A、隊(duì)列B、線性表C、二叉樹D、棧
解析:線性表、棧和隊(duì)列等數(shù)據(jù)結(jié)構(gòu)所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是--種特殊的線性表,
這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。
-一個(gè)新元素只能從棧頂一端進(jìn)入,刪除時(shí),只能刪除棧頂?shù)脑兀磩倓偙徊迦氲脑?。所以棧又稱后進(jìn)
先出表(LastInFirstOut);隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表,允許插入
的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,只能刪除隊(duì)頭元素,隊(duì)列的最后一個(gè)元素一定是
最新入隊(duì)的元素。因此隊(duì)列又稱先進(jìn)先出表(FirstInFirstOut)?
本題答案為C。
5.下列關(guān)于棧的敘述中正確的是______。
A、在棧中只能插入數(shù)據(jù)
B、在棧中只能刪除數(shù)據(jù)
C、棧是先進(jìn)先出的線性表
D、棧是先進(jìn)后出的線性表
解析:棧是限定在一端進(jìn)行插入與刪除的線性表。
棧是按照“先進(jìn)后出”的或后進(jìn)先出的原則組織數(shù)據(jù)的,因此,棧也被稱為"先進(jìn)后出"表或"后進(jìn)先出”
表。
本題答案是D?
7.對(duì)長度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為—。
A、N+1
B、N
C、(N+D/2
D、N/2
解析:在進(jìn)行順序查找過程中,如果線性表中被查的元素是線性表中的最后一個(gè),或者被查元素根本不在
線性表中,則為了查找這個(gè)元素需要與線性表中所有元素進(jìn)行比較,這是順序查找最壞的情況。
本題答案為B。
1.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______o
A、8
B、16
C、32
D、15
解析:根據(jù)二叉樹的性質(zhì):二叉樹第i(i2l)層上至多有2'T個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16。
本題答案為Bo
3.下列敘述中正確的是_____。
A、線性表是線性結(jié)構(gòu)
B、棧與隊(duì)列是非線性結(jié)構(gòu)
C、線性鏈表是非線性結(jié)構(gòu)
I)、二叉樹是線性結(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)。
如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:(1)有且只有個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一
個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。
所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
本題答案是Ao
7.在下列選項(xiàng)中,哪個(gè)不是一個(gè)算法一般應(yīng)該具有的基本特征_____。
A、確定性
B、可行性
C、無窮性
D、擁有足夠的情報(bào)
解析:作為一個(gè)算法,一般應(yīng)具有以下兒個(gè)基本特征。
1)可行性
2)確定性
3)有窮性
4)擁有足夠的情報(bào)
本題答案為C。
5.在計(jì)算機(jī)中,算法是指_____。
A、查詢方法
B、加工方法
C、解題方案的準(zhǔn)確而完整的描述
D、排序方法
解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特征:可行性、確定性、有窮性
和擁有足夠的情報(bào)。
本題答案為C。
7.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。
A、方便運(yùn)算的實(shí)現(xiàn)
B、使單鏈表至少有一個(gè)結(jié)點(diǎn)
C、標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置
D、說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,
就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)目的是為了便于運(yùn)算的實(shí)現(xiàn)。
本題答案為A。
1.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指______O
A、存儲(chǔ)在外存中的數(shù)據(jù)
B、數(shù)據(jù)所占的存儲(chǔ)空間量
C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式
D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
解析:本題考查的是數(shù)據(jù)結(jié)構(gòu)的基本概念。
數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。
故本題答案為D。
2.下列關(guān)于棧的描述中錯(cuò)誤的是。
A、棧是先進(jìn)后出的線性表
B、棧只能順序存儲(chǔ)
C、棧具有記憶作用
D、對(duì)棧的插入與刪除操作中,不需要改變棧底指針
解析:本題考查的是棧和隊(duì)列。
棧是一種特殊的線性表,這種線性表只能在固定的?端進(jìn)行插入和刪除操作,允許插入和刪除的一端
稱為棧頂,另一端稱為棧底。一個(gè)新元素只能從棧頂一端進(jìn)入,刪除時(shí),只能刪除棧頂?shù)脑?,即剛剛?/p>
插入的元素。所以棧又稱先進(jìn)后出表(FILO-FirstInLastOut)?線性表可以順序存儲(chǔ),也可以鏈?zhǔn)酱?/p>
儲(chǔ),而棧是一種線性表,也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
故本題答案為B。
3.對(duì)于長度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是o
A、冒泡排序?yàn)閚/2
B、冒泡排序?yàn)閚
C,快速排序?yàn)閚
D、快速排序?yàn)閚(n-l)/2
解析:本題考查的是基本排序算法。
假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后掃描和n/2遍的從后
往前掃描,需要比較次數(shù)為n(n-l)/2??焖倥判蚍ǖ淖顗那闆r比較次數(shù)也是n(n-l)/2。
故本題答案為Do
4.對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為。
A、log2n
B、n/2
C>n
D、n+1
解析:本題考查的是順序查找。
在進(jìn)行順序查找過程中,如果線性表中的第一個(gè)元素就是被查找元素,則只需做一次比較就查找成功,
查找效率最高;但如果被查找的元素是線性表中的最后一個(gè)元素,或者被查找的元素根本就不在線性表中,
則為了查找這個(gè)元素需要與線性表中所有的元素進(jìn)行比較,這是順序查找的最壞情況。所以對(duì)長度為n的
線性表進(jìn)行順序查找,在最壞情況下需要比較n次。
故本題答案為C。
5.下列對(duì)于線性鏈表的描述中正確的是o
A、存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的
B、存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C、存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
D、存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
解析:本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。
在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的
邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。
故本題答案為A。
1.算法的時(shí)間復(fù)雜度是指。
A、執(zhí)行算法程序所需要的時(shí)間
B、算法程序的長度
C、算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
D、算法程序中的指令條數(shù)
解析:所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。
為了能夠比較客觀地反映出一個(gè)算法的效率,在度量一個(gè)算法的工作量時(shí),不僅應(yīng)該與所使用的計(jì)算
機(jī)、程序設(shè)計(jì)語言以及程序編制者無關(guān),而且還應(yīng)該與算法實(shí)現(xiàn)過程中的許多細(xì)節(jié)無關(guān)。為此,可以用算
法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量算法的工作量。
本題答案是C。
2.下列敘述中正確的是____o
A、線性表是線性結(jié)構(gòu)
B、棧與隊(duì)列是非線性結(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)。
如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一
個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。
所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
本題答案是A。
3.設(shè)一棵完全二叉樹共有699個(gè)結(jié)點(diǎn),則在該二叉樹中的葉子結(jié)點(diǎn)數(shù)為____。
A、349
B、350
C、255
D,351
解析:所謂完全二叉樹是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的
若干結(jié)點(diǎn)。
具有n個(gè)結(jié)點(diǎn)的完全二叉樹,其父結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去父結(jié)點(diǎn)數(shù)。本
題n=699,故父結(jié)點(diǎn)數(shù)等于int(699/2)=349,葉子結(jié)點(diǎn)數(shù)等于699-349=350。
本題答案是B。
1.算法的空間復(fù)雜度是指____。
A、算法程序的長度
B、算法程序中的指令條數(shù)
C、算法程序所占的存儲(chǔ)空間
D、算法執(zhí)行過程中所需要的存儲(chǔ)空間
解析:一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需的內(nèi)存空間。
一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行
過程中所需要的額外空間。
本題答案是D。
2.下列關(guān)于棧的敘述中正確的是____。
A、在棧中只能插入數(shù)據(jù)
B、在棧中只能刪除數(shù)據(jù)
C、棧是先進(jìn)先出的線性表
D、棧是先進(jìn)后出的線性表
解析:棧是限定在一端進(jìn)行插入與刪除的線性表。
棧是按照“先進(jìn)后出”的或后進(jìn)先出的原則組織數(shù)據(jù)的,因此,棧也被稱為"先進(jìn)后出"表或"后進(jìn)先出”
表。
本題答案是D。
3.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為。
A、32
B、31
C、16
I)、15
解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。這就是
說,在滿二叉樹中,每層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第K層上有22,個(gè)結(jié)點(diǎn),且深度為
m的滿二叉樹有2,個(gè)結(jié)點(diǎn)。
在滿二叉樹中,最后一層的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)的個(gè)數(shù),本題中深度為5,故葉子結(jié)點(diǎn)數(shù)為2512'=16。
本題答案是C。
1.算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成____。
A、循環(huán)、分支、遞歸
B、順序、循環(huán)、嵌套
C、循環(huán)、遞歸、選擇
D、順序、選擇、循環(huán)
解析:算法的控制結(jié)構(gòu)給出了算法的基本框架,它不僅決定了算法中各操作的執(zhí)行順序,而且也直接反映
了算法的設(shè)計(jì)是否符合結(jié)構(gòu)化原則。一個(gè)算法一般都可以用順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)組合而成。
本題答案為Do
2.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指____。
A、數(shù)據(jù)所占的存儲(chǔ)空間量
B、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式
D、存儲(chǔ)在外存中的數(shù)據(jù)
解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。
本題答案為B。
3.設(shè)有下列二叉樹:
對(duì)此二叉樹中序遍歷的結(jié)果為
A、ABCDEF
B、DBEAFC
C、ABDECF
1)、DEBFCA
解析:所謂中序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問
根結(jié)點(diǎn),最后遍歷右子樹;并且在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右
子樹。
本題答案為B。
1.在計(jì)算機(jī)中,算法是指____o
A、查詢方法
B、加工方法
C、解題方案的準(zhǔn)確而完整的描述
D、排序方法
解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特征:可行性、確定性、有窮性
和擁有足夠的情報(bào)。
本題答案為C。
2.棧和隊(duì)列的共同點(diǎn)是。
A、都是先進(jìn)后出
B、都是先進(jìn)先出
C、只允許在端點(diǎn)處插入和刪除元素
D、沒有共同點(diǎn)
解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧
只允許在表的一端進(jìn)行插入或刪除操作,是一種"后進(jìn)先出''的線性表;而隊(duì)列只允許在表的-端進(jìn)行插入
操作,在另一端進(jìn)行刪除操作,是一種"先進(jìn)先出"的線性表。
本題答案為Co
3.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是____。
A、cedba
B、acbed
C>decab
I)、deabc
解析:依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為C;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;
又由左子樹的后序遍歷序列可知其根結(jié)點(diǎn)為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成。求
得該二叉樹的前序遍歷序列為選項(xiàng)A。
本題答案為A。
4.在下列幾種排序方法中,要求內(nèi)存量最大的是。
A、插入排序
B、選擇排序
C、快速排序
D、歸并排序
解析:快速排序的基本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵
字均比另一部分記錄的關(guān)鍵字小,再分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序
的基本操作是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排
序的基本思想是:掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),
然后對(duì)剩下的子表采用同樣的方法,直到表空為止;歸并排序是將兩個(gè)或兩個(gè)以上的有序表組合成一個(gè)新
的有序表。
本題答案為1)。
1.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無關(guān)的是數(shù)據(jù)的。
A、存儲(chǔ)結(jié)構(gòu)
B、物理結(jié)構(gòu)
C、邏輯結(jié)構(gòu)
D、物理和存儲(chǔ)結(jié)構(gòu)
解析:數(shù)據(jù)結(jié)構(gòu)概念??般包括3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的
邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。
本題答案為C。
2.棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能
是______。
A、ABCED
B,DBCEA
C、CDABE
D、DCBEA
解析:棧操作原則是“后進(jìn)先出",棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)
棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。
本題答案為Do
3.線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是____。
A、順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
B、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
C、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)
D、任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)
解析:順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過公式
L0C(ai)=L0C(al)+(iT)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都
得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。
本題答案為B。
4.在單鏈表中,增加頭結(jié)點(diǎn)的目的是____o
A、方便運(yùn)算的實(shí)現(xiàn)
B、使單鏈表至少有一個(gè)結(jié)點(diǎn)
C、標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置
D、說明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,
就能夠訪問整個(gè)鏈表,因此增加頭結(jié)點(diǎn)目的是為了便于運(yùn)算的實(shí)現(xiàn)。
本題答案為A。
1,下面敘述正確的是_____。
A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)
B、算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C、算法的有窮性是指算
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度出租車租賃與智能導(dǎo)航系統(tǒng)合作合同3篇
- 2025年度文化旅游展攤位租賃管理協(xié)議3篇
- 2025年度新能源汽車研發(fā)與技術(shù)轉(zhuǎn)移合同3篇
- 2024年貨物買賣協(xié)議書
- 職業(yè)學(xué)院學(xué)生獎(jiǎng)勵(lì)評(píng)審辦法
- 2024年版權(quán)購買協(xié)議:電影制片方購買劇本版權(quán)事宜
- 2024年藝人經(jīng)紀(jì)演出合同3篇
- 2024版聘請(qǐng)法律顧問合同
- 2025年度能源項(xiàng)目并購環(huán)境合規(guī)性審查協(xié)議3篇
- 2020年憲法知識(shí)競賽題庫及答案(完整版)
- (高清版)DZT 0275.1-2015 巖礦鑒定技術(shù)規(guī)范 第1部分:總則及一般規(guī)定
- ODM委托加工協(xié)議書模板(二篇)
- 人工智能在醫(yī)療健康領(lǐng)域的應(yīng)用探索報(bào)告
- 地下水條例培訓(xùn)課件
- 小學(xué)一年級(jí)數(shù)學(xué)口算題每天20道題
- 設(shè)備安全調(diào)試維修作業(yè)安全培訓(xùn)
- 2024年01月廣東省惠州大亞灣開發(fā)區(qū)西區(qū)街道2024年公開招考15名社區(qū)工作人員筆試歷年高頻考點(diǎn)難、易錯(cuò)點(diǎn)薈萃附答案帶詳解
- 小升初時(shí)態(tài)專題復(fù)習(xí)-一般過去時(shí)態(tài)(講義)人教PEP版英語六年級(jí)下冊
- 市政工程安全教育課件
- 醫(yī)院政府指令性任務(wù)執(zhí)行制度
- 勞工人權(quán)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論