資料結構筆試題一

2022-09-04 01:54:07 字數 3056 閱讀 8781

第一部分 選擇題 (共20分)

一、單項選擇題 (本大題共8小題,每小題2分,共16分)

1.

某演算法的空間花費s(n)=100nlog2n+0.5n1.5+1000n+2000,其空間複雜度為

[    ]

a.o(1)                       b.o(n)

c.o(n1.5)                    d.o(nlog2n)

2.在單項鍊表中刪除乙個指定結點的後繼的時間複雜度為

[    ]

a.o(n)                       b.o(nlog2n)

c.o(1)                       d.o(√n)

3.在n(n>0)個元素的順序棧中刪除1個元素的時間複雜度為

[    ]

a.o(1)                       b.o(√n)

c.o(nlog2n)                  d.o(n)

4.對長度為n的字串進行字元定位運算的時間複雜度為

[    ]

a.o(1)                       b.o(√n)

c.o(nlog2n)                  d.o(n)

5.廣義表的深度是

[    ]

a.廣義表中子表個數            b.廣義表括號個數

c.廣義表展開後所含的括號層數 d.廣義表中元素個數

6.高度為h(h>0)的二叉樹最少有________個結點

[    ]

a.h                           b.h-1

c.h+1                         d.2h

7.n個頂點的帶權無向連通圖的最小生成樹包含________個頂點

[    ]

a.n-1                         b.n

c.n/2                         d.n+1

8.氣泡排序在最好情況下時間複雜度為

[    ]

a.o(1)                       b.o(nlog2n)

c.o(n)                       d.o(n2)

9.採用拉鍊法解決衝突的雜湊表中,查詢的平均查詢長度

[    ]

a.直接與關鍵字個數有關       b.直接與裝填因子a有關

c.直接與表的容量有關         d.直接與雜湊函式有關

10.經常修改的索引檔案宜採用________做索引。

a.二叉排序樹                 b.滿二叉樹

c.多叉樹                     d.b+樹

第二部分 非選擇題 (共80分)

二、填空題 (本大題共10小題,每空2分,共20分)

11.某演算法需要的輔助空間為s(n)=10log2n+2000/n+5,則該演算法的空間複雜度為_______________。

12.在n個結點的單鏈表中,在p指向的結點之後插入乙個結點的時間複雜度為_______________。

13.設sq為迴圈佇列,儲存在陣列d[m]中,則sq出隊操作對其隊頭指標front的修改是_______________。

14.串中所含字元個數稱為該串的_______________。

15.tail(tail(a,b))=_______________

。16.n(n>0)

個結點二叉樹對應的森林最多包含_______________棵非空樹。

17.深度為n(n>0)的二叉樹最多有_______________個結點。

18.n(n>0)

個結點、(n-1)條邊的連通無向圖中,頂點度數最大值為_______________。

19.堆排序的空間複雜度_______________。

20.倒排檔案有_______________和主檔案構成。

三、簡答題 (本大題共5小題,每小題6分,共30分)

21.設有函式:

void fuc(int n)

函式fuc餓時間複雜度是多少?

22.把1、2、3、4依次進棧(棧初始為空),任何時刻(只要棧不空),都可以出(退)棧,試寫出所有可能的出棧序列(如1234)。

23.若一二叉樹有2度結點100個,則其葉結點有多少個?該二叉樹可以有多少個1度頂點?

24.請畫出廣義表d的圖形表示

d=(d,(a,b),((a,b),c),())

25.有向圖(帶權)g如下所示:

試給出用迪傑斯特拉(dijkstra)演算法求上圖a到其它各頂點最短路徑得到的陣列p各元素值(a、b、c、d、e、f編號依次是1、2、3、4、5)。

四、理解題 (本大題共2小題,每小題6分,共12分)

26.指出下面函式f的功能及返回值的含義。

int f(char s1,char s2)

flag;

typedef char datatype;

typedef struct nodebinnode;

binnode * fs(binnode *p)

五、演算法填充題 (本大題共1小題,18分)

28.下面函式diff的功能是:根據兩個由整數(都大於-32768)按公升序構成的單鏈表l1和l2(分別由a,b指向)構造乙個單鏈表l3(由*r指向),要求l3中的所有整數都是l1並且不是l2中的整數,還要求l3中的所有整數都兩兩不等。在空缺處填上適當字句,使其能正確工作。

#include

typedef struct node node;

void diff (node *a, node *b, node **r)

else if (a->d > b->d)

b=b->next

else

while (a)

}

資料結構筆試題

一 如何判斷乙個單鏈表是有環的?注意不能用標誌位,最多只能用兩個額外指標 struct node bool check const node head return false 無環 true 有環 一種o n 的辦法就是 搞兩個指標,乙個每次遞增一步,乙個每次遞增兩步,如果有環的話兩者必然重合,反...

資料結構筆試題目

1 c 編成求二叉樹的深度 int bintreedepth link head 2 排序二叉樹插入乙個節點或雙向鍊錶的實現 排序二叉樹 左小於根,根小於右。左右又分別是排序二叉樹。前序遍歷 根左右 中序遍歷 左根右 後序遍歷 左右根 排序二叉樹插入乙個結點 大於左,往右找,小於右往左找,遞迴實現。...

筆試題之資料結構

時間複雜度 整個演算法的執行時間與基本操作重複執行的次數成正比。參考kmp演算法,該演算法的時間複雜度為q n 通常,模式串的長度n比主串的長度m要小的多 穩定排序 排序前後,數值的相對前後位置不變的為穩定排序,否則為不穩定排序。1 簡單排序,時間複雜度o n的平方 不穩定 2 快速排序,時間複雜度...