1. 程式人生 > >資料結構習題及解析二

資料結構習題及解析二

來源:我是碼農,轉載請保留出處和連結!
本文連結:資料結構習題解析二
一、選擇題
1、陣列的資料元素型別DataType可根據實際需要而定義。以下說法完全正確的是( )
A.陣列的讀運算可以讀取一個數據元素整體,寫運算只能修改一個數據元素的一部分
B.陣列的讀、寫運算可以讀取或修改一個數據元素的一部分或一個整體
C.陣列的讀、寫運算只能讀取或修改一個數據元素的一部分
D.陣列的讀、寫運算只能讀取或修改一個數據元素整體
陣列
資料結構練習題解析解析:本題考點是陣列的資料元素型別的定義。 陣列的讀、寫運算可以讀取或修改一個數據元素的一部分或一個整體,當資料元素本身不是原子項時,我們可以修改一個數據元素的一部分。因此,本題參考答案是B。
2、在以下棧的基本運算中,不是加工型運算的是( )
A.lnitStack(S)
B.Push(S,X)
C.Pop(S)
D.Empty(S)
資料結構練習題解析解析:本題考點是加工型運算的判別。 清空棧不是加工型運算。因此,本題參考答案是D。
3、以下不穩定的排序方法是( )
A.直接插入排序
B.氣泡排序
C.直接選擇排序
D.二路歸併排序
資料結構練習題解析解析:本題考點是不穩定的排序方法的判別。 假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,ri=rj,且ri在rj之前,而在排序後的序列中,ri仍在rj之前,則稱這種排序演算法是穩定的;否則稱為不穩定的。直接選擇排序是不穩定的排序方法。因此,本題參考答案是C。
4、在一個長度為n的順序線性表中順序查詢值為x的元素時,查詢成功時的平均查詢長度(即x與元素的平均比較次數,假定查詢每個元素的概率都相等)為 ( )。
A.n
B.n/2
C.(n+1)/2
D.(n-1)/2
資料結構練習題解析解析:本題考點是平均查詢長度的計算方法。 為確定記錄在查詢表中的位置,需和給定值進行比較的關鍵字個數的期望值稱為查詢演算法在查詢成功時的平均查詢長度。按照此方法計算可得,本題參考答案是C。
5、以下說法錯誤的是( )
A.資料的物理結構是指資料在計算機內實際的儲存形式
B.演算法和程式沒有區別,所以在資料結構中二者是通用的
C.對連結串列進行插人和刪除操作時,不必移動結點
D.雙鏈表中至多隻有一個結點的後繼指標為空
資料結構練習題解析解析:本題考點是資料結構中相關基本概念。 演算法是解決問題的步驟;程式是演算法的程式碼實現。演算法要依靠程式來完成功能;程式需要演算法作為靈魂。因此,本題參考答案是B。
6、順序佇列的出隊操作為( )
A.sq.front=(sq.front+1)% maxsize
B.sq.front=sq.front+1
C.sq.rear=(sq.rear+1)% maxsize
D.sq.rear=sq.rear+1
資料結構練習題解析解析:本題考點是佇列的基本操作。 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。順序佇列的出隊操作為sq.front=sq.front+1。因此,本題參考答案是B。
7、對於線性表(7,34,55,25,64,46,20,10)進行雜湊儲存時,若選用 H(K)=K %9作為雜湊函式,則雜湊地址為1的元素有( )個。
A.1
B.2
C.3
D.4
資料結構練習題解析解析:本題考點是線性表雜湊儲存的特點。 雜湊函式即雜湊函式,雜湊表中元素是由雜湊函式確定的。將資料元素的關鍵字K作為自變數,通過一定的函式關係(稱為雜湊函式),計算出的值,即為該元素的儲存地址。表示為:Addr = H(key)。線性表中的值就是函式中的自變數,代入函式可知,55,64,46和10雜湊地址都為1。因此,本題參考答案是D。
8、在以下佇列的基本運算中,不是加工型運算的是( )
A.InitQueue(Q)
B.EnQueue(Q,X)
C.OutQueu(Q,X)
D.GetHead(Q,x)
資料結構練習題解析解析:本題考點是佇列的基本運算。 獲取隊頭元素不是加工型運算。因此,本題參考答案是D。
9、設連通圖G中的邊集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發可以得到一種深度優先遍歷的頂點序列為( )。
A.abedfc
B.acfebd
C.aebdfc
D.aedfcb
資料結構練習題解析解析:本題考點是圖的深度優先遍歷。 假設給定圖G的初態是所有頂點均未曾訪問過。在G中任選一頂點v為初始出發點(源點),則深度優先遍歷可定義如下:首先訪問出發點v,並將其標記為已訪問過;然後依次從v出發搜尋v的每個鄰接點w。若w未曾訪問過,則以w為新的出發點繼續進行深度優先遍歷,直至圖中所有和源點v有路徑相通的頂點(亦稱為從源點可達的頂點)均已被訪問為止。若此時圖中仍有未訪問的頂點,則另選一個尚未訪問的頂點作為新的源點重複上述過程,直至圖中所有頂點均已被訪問為止。因此,本題參考答案是C。
10、根據操作的效果,可將運算分成加工型運算、引用型運算兩種基本型別。對於表格處理中的五種功能以下解釋錯誤的是( )
A.查詢引用型運算,功能是找出滿足某種條件的結點在s(線形結構)中的位置
B.讀取引用型運算 功能是讀出s(線形結構)中某指定位置結點的內容
C.插入引用型運算,功能是在s(線形結構)的某指定位置上增加一個新結點
D.刪除加工型運算,功能是撤消s(線形結構)某指定位置上的結點
資料結構練習題解析解析:本題考點是加工型運算、引用型運算的功能。 插入是加工型運算。因此,本題參考答案是C。
二、判斷題
1、快速排序是排序演算法中平均效能最好的一種排序。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是快速排序的效能。 快速排序的基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列。快速排序是排序演算法中平均效能最好的一種排序。因此,本題參考答案是A。
2、在一個順序儲存的迴圈佇列中, 隊頭指標指向隊頭元素的後一個位置。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是迴圈佇列的特性。 迴圈佇列中,由於入隊時尾指標向前追趕頭指標;出隊時頭指標向前追趕尾指標,造成隊空和隊滿時頭尾指標均相等。在一個順序儲存的迴圈佇列中, 隊頭指標指向隊頭元素的前一個位置。因此,本題參考答案是B。
3、雜湊法儲存的基本思想是由關鍵碼的值決定資料的儲存地址。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是雜湊法儲存的基本思想。 雜湊儲存,又稱hash儲存,是一種力圖將資料元素的儲存位置與關鍵碼之間建立確定對應關係的查詢技術。雜湊法儲存的基本思想是:由節點的關鍵碼值決定節點的儲存地址。雜湊技術除了可以用於查詢外,還可以用於儲存。因此,本題參考答案是A。
4、在使用字尾表示實現計算器類時用到一個棧的例項, 它的作用是暫存運算器物件。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是字尾表示的應用。 棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。在使用字尾表示實現計算器類時用到一個棧的例項, 它的作用是暫存運算器物件。因此,本題參考答案是A。
5、在用迴圈單鏈表表示的鏈式佇列中,可以不設隊頭指標,僅在鏈尾設定隊尾指標。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是迴圈單鏈表的應用。 在用迴圈單鏈表表示的鏈式佇列中,可以不設隊頭指標,僅在鏈尾設定隊尾指標,由於是迴圈佇列,通過隊尾移動指標即可找到隊頭。因此,本題參考答案是A。
6、氣泡排序在初始關鍵字序列為逆序的情況下執行的交換次數最多。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是氣泡排序的特點。 氣泡排序,是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。氣泡排序在初始關鍵字序列為有序的情況下執行的交換次數最少。氣泡排序在初始關鍵字序列為逆序的情況下執行的交換次數最多。因此,本題參考答案是A。
7、在用單鏈表表示的鏈式佇列Q中,隊頭指標為Q->front,隊尾指標為Q->rear,則隊空條件為Q->front == Q->rear。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是單鏈表表示鏈式佇列的特點。 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。在用單鏈表表示的鏈式佇列Q中,隊頭指標為Q->front,隊尾指標為Q->rear,則隊空條件為Q->front == Q->rear+1。因此,本題參考答案是B。
8、遞迴定義的資料結構通常用遞迴演算法來實現對它的操作。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是遞迴定義資料結構的特點。 程式呼叫自身的程式設計技巧稱為遞迴( recursion)。遞迴做為一種演算法在程式設計語言中廣泛應用。 一個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重複計算,大大地減少了程式的程式碼量。遞迴的能力在於用有限的語句來定義物件的無限集合。一般來說,遞迴需要有邊界條件、遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進;當邊界條件滿足時,遞迴返回。遞迴定義的資料結構通常用遞迴演算法來實現對它的操作。因此,本題參考答案是A。
9、二叉樹中有雙子女的父結點,在中序遍歷中後繼一定是其中一個子女結點( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是二叉樹的基本特性。 二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作"左子樹"和"右子樹"。二叉樹中有雙子女的父結點,在中序遍歷中後繼不一定是其中一個子女結點。因此,本題參考答案是B。
10、遞迴呼叫演算法與相同功能的非遞迴演算法相比,主要問題在於重複計算太多,而且呼叫本身需要分配額外的空間和傳遞資料和控制,所以時間與空間開銷通常都比較大。( )
A正確
B錯誤
資料結構練習題解析解析:本題考點是遞迴呼叫演算法的缺點。 遞迴演算法解題相對常用的演算法如普通迴圈等,執行效率較低。因此,應該儘量避免使用遞迴,除非沒有更好的演算法或者某種特定情況,遞迴更為適合的時候。在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。因此,本題參考答案是A。
三、分析題
1、給定表(45,36,56,6,64,78,8,96),按資料元素在表中的次序構造一棵二叉排序樹。
資料結構練習題解析解析:本題考點是二叉排序樹的構造方法。
二叉排序樹或者是一棵空樹,或者是具有下列性質的二叉樹:
(1)若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;
(2)若右子樹不空,則右子樹上所有結點的值均大於或等於它的根結點的值;
(3)左、右子樹也分別為二叉排序樹;
(4)沒有鍵值相等的節點。
根據二叉排序樹的定義即可根據給定表構造出出二叉排序樹。 因此,本題答題要點如下:
二叉排序樹為:
二叉樹


2、判斷序列(16,19,10,15,4,23,36,20)是否為(小頂)堆?為什麼?如果不是,請按照建立堆的思想把它調整為堆,並用圖表示建堆的過程。
資料結構練習題解析解析:本題考點是堆的定義和建立方法。
n個關鍵字序列Kl,K2,…,Kn稱為堆,當且僅當該序列滿足如下性質(簡稱為堆性質): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ n/2 ) 若將此序列所儲存的向量R[1…n]看做是一棵完全二叉樹的儲存結構,則堆實質上是滿足如下性質的完全二叉樹:樹中任一非葉結點的關鍵字均不大於(或不小於)其左右孩子(若存在)結點的關鍵字。根結點(亦稱為堆頂)的關鍵字是堆裡所有結點關鍵字中最小者的堆稱為小根堆。根結點(亦稱為堆頂)的關鍵字是堆裡所有結點關鍵字中最大者,稱為大根堆。
因此,本題答題要點如下:
因為不滿足(ai<a2i 和ai<a2i+1)如a1=16,a3=10,所以不是小頂堆。 可以調整為堆:(4,15,10,16,19,23,36,20)
快速排序

3、簡述順序佇列、迴圈佇列的型別定義。
資料結構練習題解析解析:本題考點是順序佇列、迴圈佇列的定義。
順序佇列的型別定義如下:
該型別變數有三個域:data,front,rear。其中data儲存隊中元素的一維陣列。隊頭指標front和隊尾指標rear定義為整型變數,實際取值範圍為0~maxsize-1。 迴圈佇列的型別定義如下:
迴圈佇列
4、給定有序表D={006,087,155,188,220,465,505,508,511,586,656,670,700,766,897,908},用二分查詢法在D中查詢586,試用圖示法表示出查詢過程。
資料結構練習題解析解析:本題考點是二分查詢演算法的定義及過程。
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。
因此,本題答題要點如下:
排序