數據結構 試題

前言

這里是 數據結構 系列文章,主要介紹計算機二級考試中的涉及到數據結構的知識點 /
數據結構在計算機科學中處處都有存在,例如編譯系統要使用棧、散列表、語法樹等;操作系統要使用隊列、存儲管理表、目錄樹等等。

關于作者:

轉載請注明出處

題目

  1. 冒泡排序在最壞情況下的比較次數是

    • n(n+1)/2
    • nlogn
    • n(n-1)/2
    • n/2
  2. 某二叉樹有5個度為2的節點,則該二叉樹中的葉子節點數是

    • 10
    • 8
    • 6
    • 4
  3. 對于循環隊列,下列敘述中正確的是

    • 隊頭指針是固定不變的
    • 隊頭指針一定大于隊尾指針
    • 隊頭指針一定小于隊尾指針
    • 隊頭指針可以大于隊尾指針,也可以小于隊尾指針
  4. 某二叉樹中有n個度為2的結點,則該二叉樹中的葉子節點數為

    • n+1
    • n-1
    • 2n
    • n/2
  5. 支持子程序調用的數據結構是
    • 隊列
    • 二叉樹

解析

    • 冒泡排序法是一種最簡單的交換類排序方法,它是通過相鄰數據元素的交換逐步將線性表變成有序。
    • 假設線性表的長度為n,則在最壞的情況下,冒泡排序需要經過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數為n(n-1)/2。
  1. 在任意一顆二叉樹中,度為0的節點,總是比度為2的節點多一個。
    • 所謂循環隊列,就是將隊列空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,供隊列循環使用。
    • 在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。
    • 循環隊列主要有兩種基本運算:入隊運算與退隊運算,每進行一次入隊運算,隊尾指針就進一。
    • 每進行一次退隊運算,排頭指針就進一。
    • 當rear或front的值等于隊列的長度+1時,就將rear或front的值置為1。一般情況下,rear大于front,因為入隊的元素肯定比出隊的元素多。特殊的情況是rear到達數組的上限后又從數組的低端開始,此時,rear是小于front的。
  2. 在任意一顆二叉樹中,度為0的節點,總是比度為2的節點多一個。
  3. 棧是一種只能在一端進行插入或刪除的線性表。在主程序調用子程序時,要首先保存主程序當前的狀態,然后去執行子程序,最終把子程序的執行結果返回到主程序調用子程序時的位置,繼續往下執行,這種調用符合棧的“先進后出”的功能。

圖表復盤

題目數量錯誤數量錯誤率
20525%
20630%
401127.5%

第一行為今日的錯誤數量占比分析 /
第二行開始是前幾日的錯誤數量占比分析 /
最后一行是總的錯誤數量占比分析

今日知識點分布圖

涉及知識點出現次數占比
排序算法120%
二叉樹240%
隊列120%
120%

總知識點分布圖

涉及知識點出現次數占比
排序算法436%
二叉樹327%
隊列19%
218%
鏈表19%
算法分析19%

精度取自小數點后兩位

小結

分為兩部分。
先看今日的,今日出現最多的是二叉樹,其余各占20%,當然了,這跟不了解二叉樹的性質有關,而之前一日占比最大的排序算法在今天仍然是錯誤了,其主要原因可能因為,八大排序算法都會被歸為排序算法中,其范圍大,自然錯其中一個也就會增加數量了。
其次是總的,從排名上來看,仍然是排序算法占據榜首,其次是二叉樹,雖然僅僅只有40道題目的樣本,但大概反映了情況,100道題會是一個意義比較大的樣本數量,期待吧。