每個子問題所列的四個選項中,只有壹個符合題目要求。請在題目後的括號裏填上它的代碼,選多不選都無所謂。
在數據結構中,數據的邏輯結構可以分為()
a內部結構和外部結構b線性結構和非線性結構
c緊密結構和非緊密結構D動態結構和靜態結構
在以單鏈表為存儲結構的線性表中,數據元素之間的邏輯關系用()表示
a數據元素的相鄰地址表示表中b數據元素的序列號表示。
指向後繼元素的指針表示D數據元素的值表示。
設P指向單鏈表中的壹個節點S,指向要插入的節點,那麽下面程序段的作用是()
s & gtnext = p & gt接下來;p & gtnext = s;
t = p & gt數據;p & gtdata = s & gt數據;s & gt數據= t;
交換節點A *p和節點S的數據字段。
在p指向的節點的元素前插入元素。
在p指向的節點的元素後插入壹個元素。
d在節點* p之前插入節點*s。
堆棧和隊列都是()
受限訪問位置的線性結構順序存儲的線性結構
C鏈存儲的線性結構和D受限訪問位置的非線性結構
如果數組s[ n]是兩個棧S和S的* * *存儲空間,並且只有當s[ n]滿了,每個棧都進不了棧,那麽為這兩個棧分配空間的最佳方案是S和S的棧頂指針的初始值分別為()。
a和n+ B和n/
c和nd和n+
執行下面的程序段後,字符串X的值是()
s =『abcdefgh』;t =『xyzw』;
substr(X S strlen(T));
substr (Y S中柱(T));
strcat(X Y);
a〔cdefgh〕B〔cdxyzw〕
c〔cdefxy〕D〔cdefef〕
多維數組有兩種存儲方法,行優先級和列優先級,因為()
數組A的元素是行列關系,數組B的元素必須按從左到右的順序排列。
C數組的元素之間是有順序關系的。d數組是多維結構,內存是壹維結構。
從廣義表LS =( (p q) r s),分解原子q的運算是()。
a尾(頭(LS)) B頭(尾(頭(LS))
c頭(尾(LS)) D尾(尾(頭(LS)))
在具有n個葉節點的嚴格二叉樹中,節點總數是()
壹個名詞+壹個名詞
中國日報
有向圖的壹條邊叫做()
A v i與v j相鄰B v j與v i相鄰
C v i和v j相鄰,D v i和v j不相鄰。
在壹個加權連通圖G中,具有最小權重的邊必定包含在G的()中。
在最小生成樹中,b是深度第壹的生成樹
c寬度優先生成樹和D深度優先生成林
在二叉排序樹中插入新節點時,如果樹中沒有與待插入節點關鍵字相同的節點,且新節點的關鍵字小於根節點的關鍵字,則新節點將成為()。
左子樹的葉節點左子樹的分支節點
C右子樹的葉節點D右子樹的分支節點
希爾排序的增量序列必須是()
a遞增b隨機
c遞減,d不遞減。
如果在排序過程中,每次根據關鍵字大小將壹條要排序的記錄添加到先前排序的子表中的適當位置,則調用排序方法()。
插入排序b合並排序
c冒泡排序d堆排序
設置溢出區的文件是()
a索引非順序文件B ISAM文件
VSAM文件d序列文件
填空題(這個大題* *小題* *每個小題加分)
請在每個小問題的空白處填上正確答案,填錯與否都沒關系。
下列程序段的時間復雜度是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
產品=;
for(I = n;我& gt;我)
for(j = I+;j & ltn;j++)
乘積* = j;
17.已知指針P指向單鏈表中的壹個節點,那麽語句P->;next = p-& gt;下壹個-& gt;next的功能是_ _ _ _ _ _ _ _ _ _ _。溫維特。
65438+
19.如果鏈串節點中的指針占4個字節,每個字符占1個字節,那麽節點大小為2的鏈串的存儲密度是_ _ _ _ _ _ _ _ _ _ _ _ _ _。
20.右圖所示的概化表是_ _ _ _ _ _ _ _ _ _ _ _ _ _。
21.如果壹個完整的三叉戟樹包含121個節點,那麽
這棵樹的深度是_ _ _ _ _ _ _ _ _ _ _。
22.如果有向圖用鄰接矩陣表示,鄰接矩陣
第I行中非零元素的個數是頂點v的_ _ _ _ _ _ _ _ _ _ _ _ _ _。
23.如果只想通過8次排序找出4800個元素中值最小的8個元素,又想在排序過程中盡可能少的比較關鍵詞,那麽就應該選擇_ _ _ _ _ _ _ _ _ _ _ _ _ _ _排序方式。
24.要在包含20個關鍵字的三階B樹(2-3樹)上找到壹個關鍵字,最多需要訪問外部存儲器_ _ _ _ _ _ _ _次。
25.對文件的兩個主要操作是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。
三、解決問題(這個大問題*** 4個小問題,每個小問題5分,*** 20分)
26.如果S1的棧序列是1 ^ 2 ^ 3 ^ 4(每個數是13個元素),就不可能得到3142的棧序列。但是可以通過添加堆棧S2來實現。例如,如下圖中的箭頭所示,順序通過堆棧S1和S2,可以得到序列3 1 4 2。
如果用H1和H2分別表示S1和S2的入棧操作,用P1和P2分別表示兩個棧的出棧操作,則得到3 1 4 2的操作步驟如下
H1,H1,H1,P1,H2,P2,P1,H2,P1,H2,P2,H1,P1,H2,P2,P2
請按照上面的例子,寫出用兩個棧從1 ^ 2 ^ 3 ^ 4得到4 ^ 1 ^ 3 ^ 2的操作步驟。
27.右側顯示了已知的樹。
(1)寫出樹的後序序列;
(2)畫出由這棵樹轉化而來的二叉樹。
28.為關鍵字(17,33,31,40,48)構造壹個長度為7的哈希表,設哈希函數為h(key)=key%7,開放尋址方法解決沖突的探測序列為
hi =(h(key)+I(key % 5+1))% 7 0≤I≤6
(1)繪制構造好的哈希表;
(2)求等概率下搜索成功時的平均搜索長度。
29.已知R [1中的元素...8]依次是(12,5,9,20,6,31,24,27)。寫的是函數Merge(R,low,mid,high根據MergeSortDC算法在R的自頂向下的雙向合並排序過程中調用了5次。
void MergeSortDC (int R[],int low,int mid,int high)
{
int mid
if(低& lt高)p = " " & gt& lt/high)>
{
mid =(低+高)/2;
MergeSortDC (R,低,中);
MergeSortDC (R,mid+1,高);
合並(R,低,中,高);
}
} // MergeSortDC
(1)第壹次調用時的參數值;
(2)第二次調用的參數值;
(3)第三次調用的參數值;
(4)第四次調用時的參數值;
(5)第五次調用的參數值;
四、算法閱讀題(本大題*** 4小題,每小題5分,*** 20分)
30.下面這個函數的作用是以前導節點的單鏈表為存儲結構,對兩個增量有序表(表中沒有相同值的數據元素)進行如下操作:將Lb表中存在而La表中沒有的所有節點插入La中,其中La和Lb分別是兩個鏈表的頭指針。請在空白處填入適當的內容,使之成為壹個完整的算法。
無效聯合(鏈表La,鏈表Lb)
{
//這個算法的作用是將Lb表中存在而La表中不存在的所有節點插入La表中。
LinkList pre = La,q;
鏈表pa = La-& gt;接下來;
鏈表pb = Lb ->。接下來;
免費(磅);
而(pa & amp& amppd)
{
如果(pa-& gt;數據資料)
{ pre = papa = pa-& gt;接下來;}
else if(pa-& gt;數據& gtpb - >數據)
{
(1) ;
pre = pb
Pb = p B- & gt;接下來;
(2) ;
}
其他
{
q = pbPb = p B- & gt;接下來;免費(q);
}
}
中頻(鉛)
(3) ;
}
(1)
(2)
(3)