java資料結構面試題

2021-05-02 20:03:44 字數 5686 閱讀 2336

1.棧和佇列的共同特點是(只允許在端點處插入和刪除元素)

4.棧通常採用的兩種儲存結構是(線性儲存結構和鍊錶儲存結構)

5.下列關於棧的敘述正確的是(d)

a.棧是非線性結構b.棧是一種樹狀結構c.棧具有先進先出的特徵d.棧有後進先出的特徵

6.鍊錶不具有的特點是(b)a.不必事先估計儲存空間 b.可隨機訪問任一元素

c.插入刪除不需要移動元素 d.所需空間與線性表長度成正比

7.用鍊錶表示線性表的優點是(便於插入和刪除操作)

8.在單鏈表中,增加頭結點的目的是(方便運算的實現)

9.迴圈鍊錶的主要優點是(從表中任一結點出發都能訪問到整個鍊錶)

10.線性表l=(a1,a2,a3,……ai,……an),下列說法正確的是(d)

a.每個元素都有乙個直接前件和直接後件 b.線性表中至少要有乙個元素

c.表中諸元素的排列順序必須是由小到大或由大到小

d.除第乙個和最後乙個元素外,其餘每個元素都有乙個且只有乙個直接前件和直接後件

11.線性表若採用鏈式儲存結構時,要求記憶體中可用儲存單元的位址(d)

a.必須是連續的 b.部分位址必須是連續的c.一定是不連續的 d.連續不連續都可以

12.線性表的順序儲存結構和線性表的鏈式儲存結構分別是(隨機訪問的儲存結構、順序訪問的儲存結構)

13.樹是結點的集合,它的根結點數目是(有且只有1)

14.在深度為5的滿二叉樹中,葉子結點的個數為(31)

15.具有3個結點的二叉樹有(5種形態)

16.設一棵二叉樹中有3個葉子結點,有8個度為1的結點,則該二叉樹中總的結點數為(13)

17.已知二叉樹後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是(cedba)

18.已知一棵二叉樹前序遍歷和中序遍歷分別為abdegcfh和dbgeachf,則該二叉樹的後序遍歷為(dgebhfca)

19.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其後序遍歷的結點訪問順序是(gdbehfca)

20.資料庫保護分為:安全性控制、 完整性控制 、併發性控制和資料的恢復。

1. 在計算機中,演算法是指(解題方****而完整的描述)

2.在下列選項中,哪個不是乙個演算法一般應該具有的基本特徵(無窮性)

說明:演算法的四個基本特徵是:可行性、確定性、有窮性和擁有足夠的情報。

3. 演算法一般都可以用哪幾種控制結構組合而成(順序、選擇、迴圈)

4.演算法的時間複雜度是指(演算法執行過程中所需要的基本運算次數)

5. 演算法的空間複雜度是指(執行過程中所需要的儲存空間)

6. 演算法分析的目的是(分析演算法的效率以求改進)

7. 下列敘述正確的是(c)

a.演算法的執行效率與資料的儲存結構無關

b.演算法的空間複雜度是指演算法程式中指令(或語句)的條數

c.演算法的有窮性是指演算法必須能在執行有限個步驟之後終止

d.演算法的時間複雜度是指執行演算法程式所需要的時間

8.資料結構作為計算機的一門學科,主要研究資料的邏輯結構、對各種資料結構進行的運算,以及(資料的儲存結構)

9. 資料結構中,與所使用的計算機無關的是資料的(c)

a.儲存結構 b.物理結構 c.邏輯結構 d.物理和儲存結構

10. 下列敘述中,錯誤的是(b)

a.資料的儲存結構與資料處理的效率密切相關

b.資料的儲存結構與資料處理的效率無關

c.資料的儲存結構在計算機中所佔的空間不一定是連續的

d.一種資料的邏輯結構可以有多種儲存結構

11. 資料的儲存結構是指(資料的邏輯結構在計算機中的表示)

12. 資料的邏輯結構是指(反映資料元素之間邏輯關係的資料結構)

13. 根據資料結構中各資料元素之間前後件關係的複雜程度,一般將資料結構分為(線性結構和非線性結構)

14. 下列資料結構具有記憶功能的是(c)a.佇列b.迴圈佇列c.棧d.順序表

15. 下列資料結構中,按先進後出原則組織資料的是(b)

a.線性鍊錶 b.棧 c.迴圈鍊錶 d.順序表

16. 遞迴演算法一般需要利用(佇列)實現。

17. 下列關於棧的敘述中正確的是(d)a.在棧中只能插入資料b.在棧中只能刪除資料

c.棧是先進先出的線性表 d.棧是先進後出的線性表

20. 由兩個棧共享乙個儲存空間的好處是(節省儲存空間,降低上溢發生的機率)

21. 應用程式在執行過程中,需要通過印表機輸出資料時,一般先形成乙個列印作業,將其存放在硬碟中的乙個指定(佇列)中,當印表機空閒時,就會按先來先服務的方式從中取出待列印的作業進行列印。

22.下列關於佇列的敘述中正確的是(c)a.在佇列中只能插入資料 b.在佇列中只能刪除資料 c.佇列是先進先出的線性表 d.佇列是先進後出的線性表

23.下列敘述中,正確的是(d)a.線性鍊錶中的各元素在儲存空間中的位置必須是連續的

b.線性鍊錶中的表頭元素一定儲存在其他元素的前面 c.線性鍊錶中的各元素在儲存空間中的位置不一定是連續的,但表頭元素一定儲存在其他元素的前面 d.線性鍊錶中的各元素在儲存空間中的位置不一定是連續的,且各元素的儲存順序也是任意的

24.下列敘述中正確的是(a)a.線性表是線性結構 b.棧與佇列是非線性結構

c.線性鍊錶是非線性結構 d.二叉樹是線性結構

25. 線性表l=(a1,a2,a3,……ai,……an),下列說法正確的是(d)

a.每個元素都有乙個直接前件和直接後件 b.線性表中至少要有乙個元素

c.表中諸元素的排列順序必須是由小到大或由大到小d.除第乙個元素和最後乙個元素外,其餘每個元素都有乙個且只有乙個直接前件和直接後件

26.線性表若採用鏈式儲存結構時,要求記憶體中可用儲存單元的位址(連續不連續都可以)

27. 鍊錶不具有的特點是(b)a.不必事先估計儲存空間 b.可隨機訪問任一元素

c.插入刪除不需要移動元素 d.所需空間與線性表長度成正比

28. 非空的迴圈單鏈表head的尾結點(由p所指向),滿足(p->next=head)

29.與單向鍊錶相比,雙向鍊錶的優點之一是(更容易訪問相鄰結點)

30. 在(d)中,只要指出表中任何乙個結點的位置,就可以從它出發依次訪問到表中其他所有結點。a.線性單鏈表 b.雙向鍊錶 c.線性鍊錶 d.迴圈鍊錶

31. 以下資料結構屬於非線性資料結構的是(c)a.佇列 b.線性表c.二叉樹 d.棧

32.樹是結點的集合,它的根結點數目是(有且只有1)

33.具有3個結點的二叉樹有(5種形態)

34. 在一棵二叉樹上第8層的結點數最多是(128) 注:2k-1

35. 在深度為5的滿二叉樹中,葉子結點的個數為(16) 注:2n-1

36. 在深度為5的滿二叉樹中,共有(31)個結點。 注:2n-1

37.設一棵完全二叉樹共有699個結點,則在該二叉樹中的葉子結點數為(350)

說明:完全二叉樹總結點數為n,若n為奇數,則葉子結點數為(n+1)/2;若n為偶數,則葉子結點數為n/2。

38. 設有下列二叉樹,對此二叉樹中序遍歷的結果是(b)

a.abcdef

b.dbeafc

c.abdecf

d.debfca

39.已知二叉樹後序遍歷序列是dabec,中序遍歷序列debac,它的前序遍歷序列是(cedba)

40. 已知一棵二叉樹前序遍歷和中序遍歷分別為abdegcfh和dbgeachf,則該二叉樹的後序遍歷為(dgebhfca)

41.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其後序遍歷的結點訪問順序是(gdbehfca)

42. 串的長度是(串中所含字元的個數)

43.設有兩個串p和q,求q在p中首次出現位置的運算稱做(模式匹配)

44. n個頂點的連通圖中邊的條數至少為(n-1)

45.n個頂點的強連通圖的邊數至少有(n)

46.對長度為n的線性表進行順序查詢,在最壞情況下所需要的比較次數為(n)

47. 最簡單的交換排序方法是(氣泡排序)

48.假設線性表的長度為n,則在最壞情況下,氣泡排序需要的比較次數為(n(n-1)/2)

49. 在待排序的元素序列基本有序的前提下,效率最高的排序方法是(氣泡排序)

50. 在最壞情況下,下列順序方法中時間複雜度最小的是(堆排序)

51. 希爾排序法屬於(插入類排序)

52. 堆排序法屬於(選擇類排序)

53. 在下列幾種排序方法中,要求記憶體量最大的是(歸併排序)

54. 已知資料表a中每個元素距其最終位置不遠,為節省時間,應採用(直接插入排序)

55. 演算法的基本特徵是可行性、確定性、 有窮性和擁有足夠的情報。

1.乙個演算法通常由兩種基本要素組成:一是對資料物件的運算和操作,二是演算法的控制結構。

1. 演算法的複雜度主要包括時間複雜度和空間複雜度。

2. 實現演算法所需的儲存單元多少和演算法的工作量大小分別稱為演算法的空間複雜度和時間複雜度 。

3.所謂資料處理是指對資料集合中的各元素以各種方式進行運算,包括插入、刪除、查詢、更改等運算,也包括對資料元素進行分析。

4.資料結構是指相互有關聯的資料元素的集合。

5.資料結構分為邏輯結構與儲存結構,線性鍊錶屬於儲存結構 。

6.資料結構包括資料的邏輯結構和資料的儲存結構。

7. 資料結構包括資料的邏輯結構、資料的儲存結構以及對資料的操作運算。

8.資料元素之間的任何關係都可以用前趨和後繼關係來描述。

9.資料的邏輯結構有線性結構和非線性結構兩大類。

10.常用的儲存結構有順序、鏈結、 索引等儲存結構。

11. 順序儲存方法是把邏輯上相鄰的結點儲存在物理位置相鄰的儲存單元中。

12. 棧的基本運算有三種:入棧、退棧與讀棧頂元素 。

13. 佇列主要有兩種基本運算:入隊運算與退隊運算 。

14. 在實際應用中,帶鏈的棧可以用來收集計算機儲存空間中所有空閒的儲存結點,這種帶鏈的棧稱為可利用棧 。

15.棧和佇列通常採用的儲存結構是鏈式儲存和順序儲存 。

16.當線性表採用順序儲存結構實現儲存時,其主要特點是邏輯結構中相鄰的結點在儲存結構中仍相鄰 。

17. 迴圈佇列主要有兩種基本運算:入隊運算與退隊運算。每進行一次入隊運算,隊尾指標就進1 。

18.當迴圈佇列非空且隊尾指標等於對頭指標時,說明迴圈佇列已滿,不能進行入隊運算。這種情況稱為上溢 。

19.當迴圈隊列為空時,不能進行退隊運算,這種情況稱為下溢 。

20. 在乙個容量為25的迴圈佇列中,若頭指標front=16,尾指標rear=9,則該迴圈佇列中共有 18 個元素。注:

當rearfront時,元素個數=rear-front。

1.判斷鍊錶是否存在環型鍊錶問題:判斷乙個鍊錶是否存在環,例如下面這個鍊錶就存在乙個環:

例如n1->n2->n3->n4->n5->n2就是乙個有環的鍊錶,環的開始結點是n5這裡有乙個比較簡單的解法。設定兩個指標p1,p2。每次迴圈p1向前走一步,p2向前走兩步。

直到p2碰到null指標或者兩個指標相等結束迴圈。如果兩個指標相等則說明存在環。

struct link ;

bool isloop(link* head)

do while(p2 && p2->next && p1!=p2);

if(p1 == p2)

return true;

else

return false;

}2,鍊錶反轉單向鍊錶的反轉是乙個經常被問到的乙個面試題,也是乙個非常基礎的問題。比如乙個鍊錶是這樣的: 1->2->3->4->5 通過反轉後成為5->4->3->2->1。

struct linka {

資料結構演算法面試題

微軟的22道資料結構演算法面試題 含答案 1 反轉乙個鍊錶。迴圈演算法。1 list reverse list l 13 return tmp 14 2 反轉乙個鍊錶。遞迴演算法。1 list resverse list l 8 return n 9 3 廣度優先遍歷二叉樹。1 void bst t...

資料結構 演算法面試題

資料結構 演算法面試100題 摘自csdn,作者july 高天的日誌 1.把二元查詢樹轉變成排序的雙向鍊錶 樹 題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 1...

微軟面試題 資料結構

分析下面的程式,寫出結果。void main printf x 本來這個程式的 不是很長,而且題意也很清楚,先把元素壓棧,然後再出棧即可得到結果 stack 剛開始分析到pop s,x 時,不明白怎麼會從棧中彈出x,按照棧 先進後出 的原則怎麼都不可能把元素x彈出棧,在百思其解不可得時候,終於發現其...