- 💂 個人首頁:陶然同學
- 🤟 版權:本文由【陶然同學】原創、需要轉載請聯系部落客
- 💬 如果文章對你有幫助、歡迎關注、點贊、收藏(一鍵三連)和訂閱專欄哦
- 💅想尋找共同成長的小夥伴,請點選【Java全棧開發社群】
說明:
先自測看看自己能答對多少道題 答案在最後
17. 線性表是有 n 個( )的有限序列。(2分)
A.資料表
B.字元
C.資料元素
D.資料項
18. 線性表是一個( )。(2分)
A.有限序列,可以為空
B.有限序列,不可以為空
C.無限序列,可以為空
D.無限序列,不可以為空
19. 以下( )是一個線性表。(2分)
A.由 n 個實數組成的集合
B.由 100 個字元組成的序列
C.由所有整數組成的序列
D.所有奇數組成的序列
20. 線上性表中,除了開始元素外,每個元素( )。(2分)
A.隻有唯一的前驅元素
B.隻有唯一的後即元素字元
C.有多個前驅元素
D.有多個後繼元素
21. 順序表的最大有優點是( )。(2分)
A.存儲密度大 存儲密度是1
B.插入運算友善
C.删除運算友善
D.可以友善地用于各種邏輯的存儲表示 順序存儲
22. 對于順序表,通路編号為 i 的元素的時間複雜度為( )。(2分)
A. O(n)
B. O(1)
C.O(nlog2n)
D.O(log2n)
23. 對于順序表,在編号為 i 處插入一個新元素的間複雜度為( )。(2分)
A. O(n)
B. O(1)
C.O(nlog2n)
D.O(log2n)
24. 采用順序查找法對長度為 n 的線性表進行查找(不采用表尾設監視哨的方法),最壞的情況下要進行( )次元素間的比較。(2分)
A.n+2
B.n
C.n-1
D.n/2
25. 帶頭結點的單向連結清單的頭指針為 head,該連結清單為空的判定條件是( )的值為真。(2分)
A.head = = NULL
B.head.getNext()= =head
C.head.getNext()= = NULL
D.head = =head.getNext()
26. 非空的單向循環連結清單的尾結點滿足( )(設頭指針為 head,指針 p 指向尾結點)。(2分)
A.p.getNext()= =NULL
B.p= =NULL
C.p.getNext()= =head
D.p= =head
27. 連結清單所具備的特點是( )。(2分)
A.可以随機通路任一結點
B.占用連續的存儲空間
C.可以通過下标對連結清單進行直接通路
D.插入删除元素的操作不需要移動元素結點
28. 設連結清單中的結點是 Node 類型的類,且有 Node p;為了申請一個新結點,并由 p 指向該結點,可用以下 Java 語句( )。(2分)
A. p=new Node();
B. p=new Node(*);
C.p=(NODE )malloc(sizeof(p));
D.p=(NODE *)malloc(sizeof(p));
29. 設順序存儲的線性表長度為 n,對于插入操作,設插入位置是等機率的,則插入一個元素平均移動元素的次數為( )。(2分)
A.n/2
B.n
C.n-1
D.n-i+1
30. 設順序存儲的線性表長度為 n,對于删除操作,設删除位置是等機率的,則删除一個元素平均移動元素的次數為( )。(2分)
A.(n-1)/2
B.n
C.2n
D.n-i
31. 設順序存儲的線性表長度為 n,要删除第 i(0<=i<=n-1)個元素,按課本的算法,當 i=( )時,移動元素的次數為 3。(2分)
A.3 (第n位置,下标為n-1,移動0步)
B.n/2 (第n-1位置,下标為n-2,移動1步)
C.n-4 (第n-2位置,下标為n-3,移動2步)
D.4 (第n-3位置,下标為n-4,移動3步)
32. 設順序存儲的線性長度為 n,要在第 i(0<=i<=n)個元素之前插入一個新元素,按課本的算法當 i= ( )時,移動元素次數為 2。(2分)
A.n/2 (n-1元素的前面插入新元素,表示n元素位置為空,且需要移動1次。)
B.n (n-2元素的前面插入新元素,表示n和n-1都是空,且需要移動2次)
C.1
D.n-2
33. 設有一個長度為 n 的順序表,要删除第 i(0<=i<=n-1)個元素,按照課本算法,需移動元素的個數為( )。(2分)
A.n-i+1 i=n-1 -->0
B.n-i i=n-2 -->1
C.n-i-1 i=0 -->n-1
D.i
34. 下述各線性結構中可以随機通路的是( )。(2分)
A. 單向連結清單
B. 雙向連結清單
C. 單向循環連結清單
D. 順序表
35. 線性表采用鍊式存儲時,其位址( )。(2分)
A.一定是不連續的
B.必須是連續的
C.可以連續也可以不連續
D.部分位址必須是連續的
36. 在一個單連結清單中,p、q 分别指向表中兩個相鄰的結點,且 q 所指結點是 p 所指結點的直接後繼,現要删除 q 所指結點,可用的語句是( )。(2分)

A.p=q.getNext();
B.p.setNext(q);
C.p.setNext(q.getNext()); p.next = q.next;
D.q.setNext(NULL);
37. 在一個單連結清單中 p 所指結點之後插入一個 s 所指的結點時,可執行( )。(2分)
A.p.setNext(s); s.setNext(p.getNext());
B.p,setNext(s.getNext());
C.p=s.getNext();
D.s.setNext(p.getNext()); p.setNext(s); s.next = p.next; p.next = s;
38. 按照教材算法,在一個長度為 n 的順序表中為了删除位序号為 5 的元素,從前到後依次移動了 15 個元素。則原順序表的長度為( )。(2分)
A. 21 6 + 15 = 21
B. 20
C. 19
D. 25
39. 針對線性表,在存儲後如果最常用的操作是取第 i 個結點及其前驅,則采用( )存儲方式最節省時間。(2分)
A.單連結清單 讀取的時間複雜度O(n)
B.雙連結清單 讀取的時間複雜度O(n)
C.順序表 讀取的時間複雜度O(1)
D.單循環連結清單 讀取的時間複雜度O(n)
40. 假設在順序表中,每一個資料元素所占的存儲單元的數目為 4,且第一個資料元素的存儲位址為 100,則位序号是 7 的資料元素的存儲位址是:( )。(2分)
A.106
B.107
C.124