《大數(shù)據(jù)結(jié)構(gòu)》期中題庫及問題詳解
word一、判斷題:1、線性表的邏輯順序與物理順序總是一致的。( )2、線性表的順序存儲表示優(yōu)于鏈式存儲表示。( )3、線性表若采用鏈式存儲表示時所有結(jié)點之間的存儲單元地址可連續(xù)可不連續(xù)。( )4、二維數(shù)組是其數(shù)組元素為線性表的線性表。( )5、每種數(shù)據(jù)結(jié)構(gòu)都應(yīng)具備三種基本運算:插入、刪除和搜索。( )6、數(shù)據(jù)結(jié)構(gòu)概念包括數(shù)據(jù)之間的邏輯結(jié)構(gòu),數(shù)據(jù)在計算機中的存儲方式和數(shù)據(jù)的運算三個方面。( )7、線性表中的每個結(jié)點最多只有一個前驅(qū)和一個后繼。( ) 8、線性的數(shù)據(jù)結(jié)構(gòu)可以順序存儲,也可以存儲。非線性的數(shù)據(jù)結(jié)構(gòu)只能存儲。( )9、棧和隊列邏輯上都是線性表。( ) 10、單鏈表從任何一個結(jié)點出發(fā),都能訪問到所有結(jié)點 ( )11、刪除二叉排序樹中一個結(jié)點,再重新插入上去,一定能得到原來的二叉排序樹。( )12、快速排序是排序算法中最快的一種。( )13、多維數(shù)組是向量的推廣。( )14、一般樹和二叉樹的結(jié)點數(shù)目都可以為0。 ( )15、直接選擇排序是一種不穩(wěn)定的排序方法。( )16、98、對一個堆按層次遍歷,不一定能得到一個有序序列。( )17、在只有度為0和度為k的結(jié)點的k叉樹中,設(shè)度為0的結(jié)點有n0個,度為k的結(jié)點有nk個,則有n0=nk+1。( )18、折半搜索只適用與有序表,包括有序的順序表和有序的鏈表。( )19、堆棧在數(shù)據(jù)中的存儲原則是先進先出。( )20、隊列在數(shù)據(jù)中的存儲原則是后進先出。( )21、用相鄰矩陣表示圖所用的存儲空間大小與圖的邊數(shù)成正比。( )22、哈夫曼樹一定是滿二叉樹。( )23、程序是用計算機語言表述的算法。( )24、線性表的順序存儲結(jié)構(gòu)是通過數(shù)據(jù)元素的存儲地址直接反映數(shù)據(jù)元素的邏輯關(guān)系。( )25、用一組地址連續(xù)的存儲單元存放的元素一定構(gòu)成線性表。( )26、堆棧、隊列和數(shù)組的邏輯結(jié)構(gòu)都是線性表結(jié)構(gòu)。( )27、給定一組權(quán)值,可以唯一構(gòu)造出一棵哈夫曼樹。( )28、只有在初始數(shù)據(jù)為逆序時,冒泡排序所執(zhí)行的比較次數(shù)最多。( )29、希爾排序在較率上較直接接入排序有較大的改進。但是不穩(wěn)定的。( )30、在平均情況下,快速排序法最快,堆積排序法最節(jié)省空間。( )31、快速排序法是一種穩(wěn)定性排序法。( )32、算法一定要有輸入和輸出。( )33、算法分析的目的旨在分析算法的效率以求改進算法。( )34、非空線性表中任意一個數(shù)據(jù)元素都有且僅有一個直接后繼元素。( )35、數(shù)據(jù)的存儲結(jié)構(gòu)不僅有順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu),還有索引結(jié)構(gòu)與散列結(jié)構(gòu)。( )36、若頻繁地對線性表進行插入和刪除操作,該線性表采用順序存儲結(jié)構(gòu)更合適。( )37、若線性表采用順序存儲結(jié)構(gòu),每個數(shù)據(jù)元素占用4個存儲單元,第12個數(shù)據(jù)元素的存儲地址為144,則第1個數(shù)據(jù)元素的存儲地址是101。( )38、若長度為n的線性表采用順序存儲結(jié)構(gòu),刪除表的第i個元素之前需要移動表中n-i+1個元素。( )39、符號p->next出現(xiàn)在表達式中表示p所指的那個結(jié)點的容。( )40、要將指針p移到它所指的結(jié)點的下一個結(jié)點是執(zhí)行語句pp->next。( )41、若某堆棧的輸入序列為1,2,3,4,則4,3,1,2不可能是堆棧的輸出序列之一。( )42、線性鏈表中各個鏈結(jié)點之間的地址不一定要連續(xù)。( )43、程序就是算法,但算法不一定是程序。( )44、線性表只能采用順序存儲結(jié)構(gòu)或者鏈式存儲結(jié)構(gòu)。( )45、線性表的鏈式存儲結(jié)構(gòu)是通過指針來間接反映數(shù)據(jù)元素之間邏輯關(guān)系的。( )46、除插入和刪除操作外,數(shù)組的主要操作還有存取、修改、檢索和排序等。( )47、稀疏矩陣中0元素的分布有規(guī)律,因此可以采用三元組方法進行壓縮存儲。( )48、不管堆棧采用何種存儲結(jié)構(gòu),只要堆棧不空,可以任意刪除一個元素。( )49、確定串在串中首次出現(xiàn)的位置的操作稱為串的模式匹配。( )50、深度為h的非空二叉樹的第i層最多有2i-1 個結(jié)點。( )51、滿二叉樹也是完全二叉樹。( )52、已知一棵二叉樹的前序序列和后序序列可以唯一地構(gòu)造出該二叉樹。( )53、非空二叉排序樹的任意一棵子樹也是二叉排序樹。( )54、對一棵二叉排序樹進行前序遍歷一定可以得到一個按值有序的序列。( )55、一個廣義表的深度是指該廣義表展開后所含括號的層數(shù)。( )56、散列表的查找效率主要取決于所選擇的散列函數(shù)與處理沖突的方法。( )57、序列初始為逆序時,冒泡排序法所進行的元素之間的比較次數(shù)最多。( )58、已知指針P指向鍵表L中的某結(jié)點,執(zhí)行語句P=P-next不會刪除該鏈表中的結(jié)點。( )59、在鏈隊列中,即使不設(shè)置尾指針也能進行入隊操作。( )60、如果一個串中的所有字符均在另一串中出現(xiàn),則說前者是后者的子串。( )61、設(shè)與一棵樹T所對應(yīng)的二叉樹為BT,則與T中的葉子結(jié)點所對應(yīng)的BT中的結(jié)點也一定是葉子結(jié)點。( )62、若圖G的最小生成樹不唯一,則G的邊數(shù)一定多于n-1,并且權(quán)值最小的邊有多條(其中n為G的頂點數(shù))。( )63、給出不同的輸入序列建造二叉排序樹,一定得到不同的二叉排序樹。( )64、由于希爾排序的最后一趟與直接插入排序過程相同,因此前者一定比后者花費的時間多。( )65、程序越短,程序運行的時間就越少。( )66、采用循環(huán)鏈表作為存儲結(jié)構(gòu)的隊列就是循環(huán)隊列。( )67、堆棧是一種插入和刪除操作在表的一端進行的線性表。( )68、一個任意串是其自身的子串。( )69、哈夫曼樹一定是完全二叉樹。( )70、帶權(quán)連通圖中某一頂點到圖中另一定點的最短路徑不一定唯一。( )71、折半查找方法可以用于按值有序的線性鏈表的查找。( )72、稀疏矩陣壓縮存儲后,必會失效掉隨機存取功能。( )73、由一棵二叉樹的前序序列和后序序列可以唯一確定它。( )74、在n個結(jié)點的元向圖中,若邊數(shù)在于n-1,則該圖必是連通圖。( )75、在完全二叉樹中,若某結(jié)點元左孩子,則它必是葉結(jié)點。( )76、若一個有向圖的鄰接矩陣中,對角線以下元素均為0,則該圖的拓撲有序序列必定存在。( )77、樹的帶權(quán)路徑長度最小的二叉樹中必定沒有度為1的結(jié)點。( )78、二叉樹可以用0度2的有序樹來表示。( )79、一組權(quán)值,可以唯一構(gòu)造出一棵哈夫曼樹。( ) 80、101,88,46,70,34,39,45,58,66,10)是堆;( )81、將一棵樹轉(zhuǎn)換成二叉樹后,根結(jié)點沒有左子樹;( )82、用樹的前序遍歷和中序遍歷可以導(dǎo)出樹的后序遍歷;( )83、在非空線性鏈表中由p所指的結(jié)點后面插入一個由q所指的結(jié)點的過程是依次執(zhí)行語句:q->next=p->next;p->next=q。( )84、非空雙向循環(huán)鏈表中由q所指的結(jié)點后面插入一個由p指的結(jié)點的動作依次為:p->prior=q, p->next=q->next,q->next=p,q->prior->nextp。( )85、刪除非空鏈式存儲結(jié)構(gòu)的堆棧(設(shè)棧頂指針為top)的一個元素的過程是依次執(zhí)行:p=top,top= p->next,free (p)。( )86、哈希的查找無需進行關(guān)鍵字的比較。( )87、一個好的哈希函數(shù)應(yīng)使函數(shù)值均勻的分布在存儲空間的有效地址圍,以盡可能減少沖突。( )88、排序是計算機程序設(shè)計中的一種重要操作,它的功能是將一個數(shù)據(jù)元素(或記錄)的任意序列,重新排列成一個按關(guān)鍵字有序的序列。( )89、隊列是一種可以在表頭和表尾都能進行插入和刪除操作的線性表。( )90、在索引順序表上實現(xiàn)分塊查找,在等概率查找情況下,其平均查找長度不與表的個數(shù)有關(guān),而與每一塊中的元素個數(shù)有關(guān)。( )91、對于有向圖,頂點的度分為入度和出度,入度是以該頂點為終點的入邊數(shù)目;出度是以該頂點為起點的出邊數(shù)目,該頂點的度等于其入度和出度之和。( )92、無向圖的鄰接矩陣是對稱的有向圖的鄰接矩陣是不對稱的。( )93、具有n個頂點的連通圖的生成樹具有n-1條邊( )二、填空題:1、數(shù)據(jù)結(jié)構(gòu)課程討論的主要容是數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和_。2、數(shù)據(jù)結(jié)構(gòu)算法中,通常用時間復(fù)雜度和_兩種方法衡量其效率。3、一個算法一該具有_,_,_,_和_這五種特性。4、若頻繁地對線性表進行插入與刪除操作,該線性表應(yīng)采用_存儲結(jié)構(gòu)。5、在非空線性表中除第一個元素外,集合中每個數(shù)據(jù)元素只有一個_;除最后一個元素之外,集合中每個數(shù)據(jù)元素均只有一個_。6、線性表中的每個結(jié)點最多有_前驅(qū)和_后繼。7、_鏈表從任何一個結(jié)點出發(fā),都能訪問到所有結(jié)點。8、鏈式存儲結(jié)構(gòu)中的結(jié)點包含_域,_域。9、在雙向鏈表中,每個結(jié)點含有兩個指針域,一個指向_結(jié)點,另一個指向_結(jié)點。10、某帶頭結(jié)點的單鏈表的頭指針head,判定該單鏈表非空的條件_。11、在雙向鏈表中,每個結(jié)點含有兩個指針域,一個指向_結(jié)點,另一個指向_結(jié)點。12、已知指針p指向單鏈表中某個結(jié)點,則語句p->next=p->next->next的作用_刪除p 的后繼結(jié)點_。13、已知在結(jié)點個數(shù)大于1的單鏈表中,指針p指向某個結(jié)點,則下列程序段結(jié)束時,指針q指向*p的_結(jié)點。q=p;while(q->next!=p) q=q->next;14、若要在單鏈表結(jié)點*P后插入一結(jié)點*S,執(zhí)行的語句_。15、線性表的鏈式存儲結(jié)構(gòu)地址空間可以_,而向量存儲必須是地址空間_。16、棧結(jié)構(gòu)允許進行刪除操作的一端為_。17、在棧的順序?qū)崿F(xiàn)中,棧頂指針top,棧為空條件_。18、對于單鏈表形式的隊列,其空隊列的F指針和R指針都等于_。19、若數(shù)組s0.n-1為兩個棧s1和s2的共用存儲空間,僅當s0.n-1全滿時,各棧才不能進行棧操作,則為這兩個棧分配空間的最佳方案是:s1和s2的棧頂指針的初值分別為_。20、允許在線性表的一端插入,另一端進行刪除操作的線性表稱為_。插入的一端為_,刪除的一端為_。21、設(shè)數(shù)組Am為循環(huán)隊列Q的存儲空間,font為頭指針,rear為尾指針,判定Q為空隊列的條件_。22、對于順序存儲的隊列,存儲空間大小為n,頭指針為F,尾指針為R。若在邏輯上看一個環(huán),則隊列中元素的個數(shù)為_。23、已知循環(huán)隊列的存儲空間為數(shù)組data21,且頭指針和尾指針分別為8和3,則該隊列的當前長度_。24、一個串的任意個連續(xù)的字符組成的子序列稱為該串的_,包含該子串的串稱為_。25、求串T在主串S中首次出現(xiàn)的位置的操作是_。26、在初始為空的隊列中插入元素A,B,C,D以后,緊接著作了兩次刪除操作,此時的隊尾元素是_。27、在長度為n的循環(huán)隊列中,刪除其節(jié)點為x的時間復(fù)雜度為_。28、已知廣義表L為空,其深度為_。29、已知一順序存儲的線性表,每個結(jié)點占用k個單元,若第一個結(jié)點的地址為DA1,則第i個結(jié)點的地址為_。30、設(shè)一行優(yōu)先順序存儲的數(shù)組A56,A00的地址為1100,且每個元素占2個存儲單元,則A23的地址為_。31、設(shè)有二維數(shù)組A919,其每個元素占兩個字節(jié),第一個元素的存儲地址為100,若按行優(yōu)先順序存儲,則元素A6,6的存儲地址為_,按列優(yōu)順序存儲,元素A6,6的存儲地址為_。32、在進行直接插入排序時, 其數(shù)據(jù)比較次數(shù)與數(shù)據(jù)的初始排列_關(guān);而在進行直接選擇排序時,其數(shù)據(jù)比較次數(shù)與數(shù)據(jù)的初始排列_關(guān)。33、假設(shè)以行為優(yōu)先存儲的三維數(shù)組A567,A000的地址為1100,每個元素占兩個存儲單元,則A432的地址為_。34、設(shè)二維數(shù)組Amn按列優(yōu)先存儲,每個元素占1個存儲單元,元素A00的存儲地址loc(A00),則Aij的存儲地址loc(Aij)=_。35、稀疏矩陣一般采用_方法進行壓縮存儲。36、稀疏矩陣可用_進行壓縮存儲,存儲時需存儲非零元的_、_、_。37、若矩陣中所有非零元素都集中在以主對角線為中心的帶狀區(qū)域中,區(qū)域外的值全為0,則稱為_。38、若一個n 階矩陣A中的元素滿足:Aij=Aji (0<=I ,j<=n-1)則稱A為_矩陣;若主對角線上方(或下方)的所有元素均為零時,稱該矩陣為_。39、對于上三角形和下三角形矩陣,分別以按行存儲和按列存儲原則進行壓縮存儲到數(shù)組Mk中,若矩陣中非0元素為Aij,則k對應(yīng)為_和_。40、設(shè)有一上三角形矩陣A55按行壓縮存儲到數(shù)組B中,B0的地址為100,每個元素占2個單元,則A32地址為_。41、廣義表(A,(a,b),d,e,(i,j),k)),則廣義表的長度為_,深度為_。42、已知廣義表A=(a,b,c),(d,e,f),則運算head(head (tail(A))=_ _。43、已知廣義表ls =(a,(b,c,d),e),運用head和tail函數(shù)取出ls中的原子b的運算是_。44、在樹結(jié)構(gòu)里,有且僅有一個結(jié)點沒有前驅(qū),稱為根。非根結(jié)點有且僅有一個_,且存在一條從根到該結(jié)點的_。45、度數(shù)為0的結(jié)點,即沒有子樹的結(jié)點叫作_結(jié)點或_結(jié)點。同一個結(jié)點的兒子結(jié)點之間互稱為_結(jié)點。 46、假定一棵樹的廣義表為A(B(e),C(F(h,i,j),g),D),則該樹的度為_,樹的深度為_,終端結(jié)點為_,單分支結(jié)點為,雙分支結(jié)點個數(shù)為 _,三分支結(jié)點為_,C結(jié)點的雙親結(jié)點是_,孩子結(jié)點是_。48、完全二叉樹、滿二叉樹、線索二叉樹和二叉排序樹這四個名詞術(shù)語中,與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)系的是_。47、有三個結(jié)點的二叉樹,最多有_種形狀。48、每一趟排序時從排好序的元素中挑出一個值最小的元素與這些未排小序的元素的第一個元素交換位置,這種排序方法成為_排序法。49、高度為k的二叉樹具有的結(jié)點數(shù)目,最少為_,最多為_。50、對任何一棵二叉樹,若n0,n1,n2分別是度為0,1,2的結(jié)點的個數(shù),則n0=_。51、在含100個結(jié)點的完全二叉樹,葉子結(jié)點的個數(shù)為_。52、將一個數(shù)據(jù)元素(或記錄)的任意序列,重新排列成一個按關(guān)鍵字有序的序列叫_。53、若一棵滿二叉樹含有121個結(jié)點,則該樹的深度為_。54、一個具有767個結(jié)點的完全二叉樹,其葉子結(jié)點個數(shù)為_。55、深度為90的滿二叉樹,第11層有_個結(jié)點。56、有100個結(jié)點的完全二叉樹,深度為_。57、設(shè)一棵二叉樹中度為2的結(jié)點10個,則該樹的葉子個數(shù)為_。58、若待散列的序列為(18,25,63,50,42,32,9),散列函數(shù)為H(key)=key MOD 9,與18發(fā)生沖突的元素有_個。59、含有3個2度結(jié)點和4個葉結(jié)點的二叉樹可含_個1度結(jié)點。60、一棵具有層滿二叉樹中節(jié)點總數(shù)為_。61、一棵含有16個結(jié)點的完全二叉樹,對他按層編號,對于編號為7的結(jié)點,他的雙親結(jié)點及左右結(jié)點編號為_、_、_。62、深度為k(設(shè)根的層數(shù)為1)的完全二叉樹至少有_個結(jié)點, 至多有_個結(jié)點。63、若要對某二叉排序樹進行遍歷,保證輸出所有結(jié)點的值序列按增序排列,應(yīng)對該二叉排序樹采用_遍歷法。64、在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要進行_次元素之間的比較。65、設(shè)有10個值,構(gòu)成哈夫曼樹,則該哈夫曼樹共有_個結(jié)點。66、從樹中一個結(jié)點到另一個結(jié)點之間的分支構(gòu)成這兩個結(jié)點之間的_。67、關(guān)鍵字自身作為哈希函數(shù),即H(k)=k,也可自身加上一個常數(shù)作為哈希函數(shù),即H(k)=k+C這種構(gòu)造哈希函數(shù)的方式叫_。68、對于一個圖G,若邊集合E(G)為無向邊的集合,則稱該圖為_。69、對于一個圖G,若邊集合E(G)為有向邊的集合,則稱該圖為_。70、對于有向圖,頂點的度分為入度和出度,以該頂點為終點的邊數(shù)目叫_;以該頂點為起點的邊數(shù)目叫_。71、一個無向圖采用鄰接矩陣存儲方法,其鄰接矩陣一定是一個_。72、有一個n個頂點的有向完全圖的弧數(shù)_。73、在無向圖中,若從頂點A到頂點B存在_,則稱A與B之間是連通的。74、在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的_倍。75、一個連通圖的生成樹是該圖的_連通子圖。若這個連通圖有n個頂點, 則它的生成樹有_條邊。76、無向圖的鄰接矩陣是一個_矩陣。77、如果從一無向圖的任意頂點出發(fā)進行一次深度優(yōu)先搜索即可訪問所有頂點,則該圖一定是_ _。78、若采用鄰接表的存儲結(jié)構(gòu),則圖的廣度優(yōu)先搜索類似于二叉樹的_遍歷。79、若圖的鄰接矩陣是對稱矩陣,則該圖一定是_。80、從如圖所示的臨接矩陣可以看出,該圖共有_個頂點。如果是有向圖,該圖共有_條?。蝗绻菬o向圖,則共有_條邊。81、如果從一個頂點出發(fā)又回到該頂點,則此路徑叫做_。82、一個具有個n頂點的無向圖中,要連通全部頂點至少需要_條邊。83、給定序列100, 86, 48, 73, 35, 39, 42, 57, 66, 21, 按堆結(jié)構(gòu)的定義, 則它一定_堆。84、從未排序序列中選擇一個元素,該元素將當前參加排序的那些元素分成前后兩個部分,前一部分中所有元素都小于等于所選元素,后一部分中所有元素都大于或等于所選元素,而此時所選元素處在排序的最終位置。這種排序法稱為_排序法。85、折半搜索只適合用于_。86、結(jié)點關(guān)鍵字轉(zhuǎn)換為該結(jié)點存儲單元地址的函數(shù)H稱為_或叫_。87、在索引查找中,首先查找_,然后查找相應(yīng)的_,整個索引查找的平均查找長度等于查找索引表的平均長度與查找相應(yīng)子表的平均查找長度的_。三、選擇題:( 及它們之間的聯(lián)系。A存儲和邏輯結(jié)構(gòu) B存儲和抽象 C理想和抽象 D理想與邏輯( 。A先進先出 B后進先出 C先進后出 D隨意進出( )3.將一棵有100個結(jié)點的完全二叉樹從上到下,從左到右依次對結(jié)點進行編號,根結(jié)點的編號為1,則編號為49的結(jié)點的左孩子的編號為_。 ( )4.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為( ) ( )5.設(shè)有100個元素,用折半查找法進行查找時,最大比較次數(shù)是_ 。 ( )6.快速排序在_情況下最易發(fā)揮其長處。 ( )7.由兩個棧共享一個向量空間的好處是_。 A減少存取時間,降低下溢發(fā)生的機率 B節(jié)省存儲空間,降低上溢發(fā)生的機率C減少存取時間,降低上溢發(fā)生的機率 D節(jié)省存儲空間,降低下溢發(fā)生的機率( )8.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_的二叉樹A空或者只有一個結(jié)點 B高度等于其結(jié)點數(shù)C任一結(jié)點無左孩子 D任一結(jié)點無右孩子( )9.設(shè)散列表長m=14,散列函數(shù)H(K)=K11,已知表中已有4個結(jié)點:r(15)=4; r(38)=5; r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關(guān)鍵字為49的結(jié)點地址是_。A8 B3 C5 D9( )10.在含有n個項點有e條邊的無向圖的鄰接矩陣中,零元素的個數(shù)為_。 ( )11.圖的深度優(yōu)先遍歷類似于二叉樹的_。 ( )12.設(shè)長度為n的鏈隊列用單循環(huán)鏈表表示,若只設(shè)頭指針,則入隊操作的時間復(fù)雜度為_。A. O(1) B. O(log2n) C. O(n) D. O(n2)( )13.堆的形狀是一棵_。 ( )14.一個無向連連通圖的生成樹是含有該連通圖的全部項點的_。 ( )15.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_方法 ( typedef struct node ElemType data; struct node * Link; ListNode; 已知指針p所指結(jié)點不是尾結(jié)點,若在*p之后插入結(jié)點*s,則應(yīng)執(zhí)行下列哪一個操作_。A. s->link = p; p->link = s;B. s->link = p->link; p->link = s;C. s->link = p->link; p = s; D. p->link = s; s->link = p;( typedef struct node ElemType data; struct node * Link; ListNode;非空的循環(huán)單鏈表first的尾結(jié)點(由p所指向)滿足:_A. p->link = NULL; B. p = NULL;C. p->link = first;D. p = first;( )18.計算機識別、存儲和加工處理的對象被統(tǒng)稱為_A數(shù)據(jù) ( AO(1) B.O(n) C.O(nlogn) D.O(n2)( )20隊和棧的主要區(qū)別是_ ( )21鏈棧與順序棧相比,比較明顯的優(yōu)點是_ ( )22在目標串T0n-1=”xwxxyxy”中,對模式串p0m-1=”xy”進行子串定位操作的結(jié)果_A.0 C.3 ( )23已知廣義表的表頭為A,表尾為(B,C),則此廣義表為_A.(A,(B,C)) B.(A,B,C)C.(A,B,C) D.( A,B,C)( )24二維數(shù)組A按行順序存儲,其中每個元素占1個存儲單元。若A11的存儲地址為420,A33的存儲地址為446,則A55的存儲地址為_A.470 C.472 ( )25二叉樹中第5層上的結(jié)點個數(shù)最多為_A.8 C.16 ( )26如果某圖的鄰接矩陣是對角線元素均為零的上三角矩陣,則此圖是_A.有向完全圖 ( )27對n個關(guān)鍵字的序列進行快速排序,平均情況下的空間復(fù)雜度為_A.O(1) B.O(logn)C.O(n) D.O(nlogn)( )28對于哈希函數(shù)H(key)=key%13,被稱為同義詞的關(guān)鍵字是_A35和41 C.15和44 ( )29. 由權(quán)值分別為3,8,6,2,5的葉子結(jié)點生成一棵哈夫曼樹,它的帶權(quán)路徑長度為_。A、 24 B、 48 C、 72 D、 53( )30對包含N個元素的散列表進行檢索,平均檢索長度 _A、為 o(log2N) B、為o(N) C、不直接依賴于N D、上述三者都不是( )31. 向堆中插入一個元素的時間復(fù)雜度為_。A、 O(log2n) B、 O(n) C、 O(1) D、 O(nlog2n)( )32下面關(guān)于圖的存儲的敘述中,哪一個是正確的。 _A用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān) B用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點個數(shù)無關(guān)C用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān)D用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點個數(shù)無關(guān)( )33.輸入序列為(A,B,C,D),不可能得到的輸出序列是_.A. (A,B,C,D) B.(D,C,B,A)C.(A, C,D,B) D.(C,A,B,D)( )34.在長度為n的順序存儲的線性表中,刪除第i個元素(1in)時,需要從前向后依次前移_個元素。A、n-i B、n-i+1 C、n-i-1 D、i( )35.設(shè)一個廣義表中結(jié)點的個數(shù)為n,則求廣義表深度算法的時間復(fù)雜度為_。A、O(1) B、O(n) C、O(n2) D、O(log 2 n)( )36.假定一個順序隊列的隊首和隊尾指針分別為f和r,則判斷隊空的條件為 _。A、f+1=r B、r+1=f C、f=0 D、f=r( )37.從堆中刪除一個元素的時間復(fù)雜以為_。A、O(1) B、O(log 2 n) C、O(n) D、O(nlog 2 n)( )38若需要利用形參直接訪問實參,則應(yīng)把形參變量說明為_參數(shù)。 C.值 ( )39在一個單鏈表HL中,若要在指針q所指結(jié)點的后面插入一個由指針p所指向的結(jié)點,則執(zhí)行_。A. q一>next=p一>next;p一>next=q;C. q一>next=p一>next;p一>next=q;B. p一>next=q一>next;q=p; D. p一>next=q一>next;q一>next=p;( )40在一個順序隊列中,隊首指針指向隊首元素的_位置。 ( )41向二叉搜索樹中插入一個元素時,其時間復(fù)雜度大致力_。A O(1) B O(1og2n)C O(n) D O(nlog2n)( A.計算機程序 ( )43.線性表采用鏈式存儲時,結(jié)點的存儲地址_A.必須是不連續(xù)的 ( A.O(1) B.O(n)C.O(m) D.O(m+n)( )45.由兩個棧共享一個向量空間的好處是:_A.減少存取時間,降低下溢發(fā)生的機率 B.節(jié)省存儲空間,降低上溢發(fā)生的機率C.減少存取時間,降低上溢發(fā)生的機率 D.節(jié)省存儲空間,降低下溢發(fā)生的機率( )46.設(shè)數(shù)組DAtAm作為循環(huán)隊列SQ的存儲空間,front為隊頭指針,reAr為隊尾指針,則執(zhí)行出隊操作后其頭指針front值為_A. front=front+1 B. front=(front+1)%(m-1)C. front=(front-1)%m D. front=(front+1)%m( A. 串是一種特殊的線性表 B. 串的長度必須大于零C. 串中元素只能是字母 D. 空串就是空白串( )48.若目標串的長充為n,模式串的長度為n/3,則執(zhí)行模式匹配算法時,在最壞情況下的時間復(fù)雜度是_A.O(1) B.O(n)C.O(n2) D.O(n3)( C.只能是原子 ( )50. 從堆中刪除一個元素的時間復(fù)雜度為_。A、 O(1) B、 O(n) C、 O(log2n) D、 O(nlog2n)( )51.一棵度為3的樹中,度為3的結(jié)點個數(shù)為2,度為2的結(jié)點個數(shù)為1,則度為0的結(jié)點個數(shù)為_A.4 C.6 ( )52. 從二叉搜索樹中查找一個元素時,其時間復(fù)雜度大致為_。A、 O(n) B、 O(1) C、 O(log2n) D、 O(n2)( )53. 根據(jù)n個元素建立一棵二叉搜索樹時,其時間復(fù)雜度大致為_。A、 O(n) B、 O(log2n ) C、 O(n2) D、 O(nlog2n)( )54.用某種排序方法對關(guān)鍵字序列(25,84,21,47,15,27,68,35,20)進行排序時,序列的變化情況是如下_: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84則所采用的排序方法是_A.選擇排序 C.歸并排序 ( A.有序表 C.二叉排序樹 ( )56. 若需要利用形參直接訪問實參,則應(yīng)把形參變量說明為_參數(shù)。 A 指針 B 引用 C 值 D 常量 ( )57.鏈式棧與順序棧相比,一個比較明顯的優(yōu)點是_。 A. 插入操作更加方便 B. 通常不會出現(xiàn)棧滿的情況 C. 不會出現(xiàn)??盏那闆r D. 刪除操作更加方便 ( )58.設(shè)單鏈表中結(jié)點的結(jié)構(gòu)為(data, link)。已知指針q所指結(jié)點是指針p所指結(jié)點的直接前驅(qū),若在*q與*p之間插入結(jié)點*s,則應(yīng)執(zhí)行下列哪一個操作_ A. s->link = p->link; p->link = s; B. p->link = s; s->link = q;C. p->link = s->link; s->link = p; D. q->link = s; s->link = p;( )59若讓元素1,2,3依次進棧,則出棧次序不可能出現(xiàn)_種情況。 A. 3, 2, 1 B. 2, 1, 3 C. 3, 1, 2 D. 1, 3, 2 ( )60.線性鏈表不具有的特點是_。 A. 隨機訪問 B. 不必事先估計所需存儲空間大小 C. 插入與刪除時不必移動元素 D. 所需空間與線性表長度成正比 ( )61在稀疏矩陣的十字存儲中,每個列單鏈表中的結(jié)點都具有相同的_。 行號 列號 元素值 地址 ( )62.假定一個順序隊列的隊首和隊尾指針分別為front和rear,存放該隊列的數(shù)組長度為N,則判斷隊空的條件為_。 A(front+1)% N = rear C front = 0B(rear+1)% N = front D front = rear( )63棧的插入和刪除操作在進行 ()棧頂 ()棧底()任意位置 ().指定位置 ( )64. 在一個順序循環(huán)隊列中,隊首指針指向隊首元素的_位置。 A. 后兩個 B. 后一個C. 當前 ( )65下面算法的時間復(fù)雜度為。 int f(int n) if (n0)return 1; else return nf(n-1); AO(1) BO(n) CO(n²) DO(n!)( )66.數(shù)據(jù)結(jié)構(gòu)是一門研究非數(shù)值計算的程序設(shè)計問題中計算機的()以及它們之間的()和運算的學(xué)科、操作對象、計算方法、邏輯存儲、數(shù)據(jù)映象、結(jié)構(gòu)、關(guān)系、運算、算法( )67.數(shù)據(jù)結(jié)構(gòu)被形式地定義為(K,R),其中K是()的有限集合,R是K上()的有限集合、算法、數(shù)據(jù)元素、數(shù)據(jù)操作、邏輯結(jié)韻、操作、映象、存儲、關(guān)系( )68.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為_、動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu) 、緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)、線性結(jié)構(gòu)和非線性結(jié)構(gòu) 、部結(jié)構(gòu)和外部結(jié)構(gòu)( )69.線性表的順序存儲結(jié)構(gòu)是一種_的存儲結(jié)構(gòu),線性表的鏈式存儲結(jié)構(gòu)是一種_的存儲結(jié)構(gòu)、隨機存取 、順序存取、索引存取 、HASH存?。?#160; )70.算法分析的目的是(),算法分析的兩個主要方面是()、找出數(shù)據(jù)結(jié)構(gòu)的合理性 、分析算法的效率以求改進 、研究算法中的輸入和輸出的關(guān)系、分析算法的易懂性和文檔性、空間復(fù)雜性和時間復(fù)雜性 、可讀性和文檔性、正確性和簡明性 、數(shù)據(jù)復(fù)雜性和程序復(fù)雜性( )71.計算機算法指的是(),它必具備輸入、輸出和()等五個特性、計算方法 、排序方法、解決萊一問題的有限運算序列 、調(diào)度方法、可執(zhí)行性、可移植性和可擴充性 、確定性、有窮性和穩(wěn)定性、可執(zhí)行性、確定性和有窮性 、易謾性、穩(wěn)定性和安全性( )72.線性表若采用鏈表存儲結(jié)構(gòu)時,要求存中可用存儲單元的地址_、必須是連續(xù)的、部分地址必須是連續(xù)的、一定是不連續(xù)的、連續(xù)不連續(xù)都可以( )73.在以下的敘述中,正確的是_、線性表的線性存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu) 、棧的操作方式是先進先出、二維數(shù)組是它的每個數(shù)據(jù)元素為一個線性表的線性表、隊列的操作方式是先進后出( )74. 一個數(shù)組元素Ai與_的表示等價。A、 *(A+i) B、 A+i C、 *A+i D、 &A+i ( )75. 對于兩個函數(shù),若函數(shù)名相同,但只是_不同則不是重載函數(shù)。A、 參數(shù)類型 B、 參數(shù)個數(shù) C、 函數(shù)類型 D、函數(shù)變量( )76. 若需要利用形參直接訪問實參,則應(yīng)把形參變量說明為_參數(shù)A、 指針 B、 引用 C、 值 D、函數(shù)( )77.下面程序段的時間復(fù)雜度為_。 for(int i=0; i<m; i+) for(int j=0; j<n; j+) Aij=i*j;A、 O(m2) B、 O(n2) C、 O(m*n) D、 O(m+n)( )78. 執(zhí)行下面程序段時,執(zhí)行S語句的次數(shù)為_。 for(int i=1; i<=n; i+) for(int j=1; j<=i; j+) S;A、 n2 B、 n2/2 C、 n(n+1) D、 n(n+1)/2( )79. 下面算法的時間復(fù)雜度為_。 int f( unsigned int n ) if ( n=0 | n=1 ) return 1; else return n*f(n-1); A、 O(1) B、 O(n) C、 O(n2) D、 O(n!)( )80在一個長度為n的順序存儲線性表中,向第i個元素(1in+1)之前插入一個新元素時,需要從后向前依次后移 個元素。A、n-i B、n-i+1 C、n-i-1 D、i( )81在一個長度為n的順序存儲線性表中,刪除第i個元素(1in+1)時,需要從前向后依次前移_個元素。A、n-i B、n-i+1 C、n-i-1 D、i( )82.在一個長度為n的線性表中順序查找值為x的元素時,查找時的平均查找長度(即x同元素的平均比較次數(shù),假定查找每個元素的概率都相等)為_。A、n B、n/2 C、(n+1)/2 D、(n-1)/2( )83在一個單鏈表HL中,若要向表頭插入一個由指針p指向的結(jié)點,則執(zhí)行_ 。A、HL = p; p->next = HL; C、p->next = HL; p = HL;B、p->next = HL; HL = p; D、p->next = HL->next; HL->next = p;( )84在一個單鏈表HL中,若要在指針q所指的結(jié)點的后面插入一個由指針p所指的結(jié)點,則執(zhí)行_。A、q->next = p->next p->next = q; C、q->next = p->next; p->next = q;B、p->next = q->next; q = p; D、p->next = q->next q->next = p;( )85在一個單鏈表HL中,若要刪除由指針q所指向結(jié)點的后繼結(jié)點,則執(zhí)行_。A、p = q->next p->next = q->next; C、p = q->next q->next = p->next;B、p = q->next q->next = p; D、q->next = q->next->next; q->next = q;( )86. 在稀疏矩陣的帶行指針向量的存儲中,每個行單鏈表中的結(jié)點都具有相同的_。A、 行號 B、 列號 C、 元素值 D、 地址( )87. 設(shè)一個廣義表中結(jié)點的個數(shù)為n,則求廣義表深度算法的時間復(fù)雜度為_。A、 O(1) B、 O(n) C、 O(n2) D、 O(log2n)( )88棧的插入與刪除操作在_進行。A、棧頂 B、棧底 C、任意位置 D、指定位置( )89當利用大小為N的一維數(shù)組順序存儲一個棧時,假定用top=N表示棧空,則向這個棧插入一個元素時,首先應(yīng)執(zhí)行_語句修改top指針。A、top+ B、top- C、top=0 D、top( )90若讓元素1,2,3依次進棧,則出棧次序不可能出現(xiàn)_種情況。A、3,2,1 B、2,1,3 C、3,1,2 D、1,3,2( )91在一個循環(huán)順序隊列中,隊首指針指向隊首元素的_位置。A、前一個 B、后一個 C、當前 D、后面( )92當利用大小為N的一維數(shù)組順序存儲一個循環(huán)隊列時,該隊列的最大長度為_。A、N-2 B、N-1 C、N D、N+1( )93從一個循環(huán)順序隊列刪除元素時,首先需要_。A、前移一位隊首指針 B、后移一位隊首指針C、取出隊首指針所指位置上的元素 D、取出隊尾指針所指位置上的元素( )94假定一個循環(huán)順序隊列的隊首和隊尾指針分別為f和r,則判斷隊空的條件是_。A、f+1=r B、r