點擊查看:2018年全國計算機二級考試MSOffice考點匯總
數據結構與算法
1.1算法
1.算法的基本概念
(1)概念:算法是指一系列解決問題的清晰指令。
(2)4個基本特征:可行性、確定性、有窮性、擁有足夠的情報。
(3)兩種基本要素:對數據對象的運算和操作、算法的控制結構(運算和操作時問的順序)。
(4)設計的基本方法:列舉法、歸納法、遞推法、遞歸法、減半遞推技術和回溯法。
2.算法的復雜度
(1)算法的時間復雜度:執行算法所需要的計算工作量。
(2)算法的空間復雜度:執行算法所需的內存空間。
1.2數據結構的基本概念
數據結構指相互有關聯的數據元素的集合,即數據的組織形式。其中邏輯結構反映數據元素之間邏輯關系;存儲結構為數據的邏輯結構在計算機存儲空間中的存放形式,有順序存儲、鏈式存儲、索引存儲和散列存儲4種方式。
數據結構按各元素之間前后件關系的復雜度可劃分為:
(1)線性結構:有且只有一個根節點,且每個節點最多有一個直接前驅和一個直接后繼的非空數據結構。
(2)非線性結構:不滿足線性結構的數據結構。
1.3線性表及其順序存儲結構
1.線性表的基本概念
線性結構又稱線性表,線性表是最簡單也是最常用的一種數據結構。
2.線性表的順序存儲結構
•元素所占的存儲空間必須連續。
•元素在存儲空間的位置是按邏輯順序存放的。
3.線性表的插入運算
在第i個元素之前插入一個新元素的步驟如下:
步驟一:把原來第n個節點至第i個節點依次往后移一個元素位置。
步驟二:把新節點放在第i個位置上。
步驟三:修正線性表的節點個數。
在最壞情況下,即插入元素在第一個位置,線性表中所有元素均需要移動。
4.線性表的刪除運算
刪除第i個位置的元素的步驟如下:
步驟一:把第i個元素之后不包括第i個元素的n-i個元素依次前移一個位置;
步驟二:修正線性表的結點個數。
1.4棧和隊列
1.棧及其基本運算
(1)基本概念:棧是一種特殊的線性表,其插入運算與刪除運算都只在線性表的一端進行,也被稱為“先進后出”表或“后進先出”表。
•棧頂:允許插入與刪除的一端。
•棧底:棧頂的另一端。
•空棧:棧中沒有元素的棧。
(2)特點。
•棧頂元素是最后被插入和最早被刪除的元素。
•棧底元素是最早被插入和最后被刪除的元素。
•棧有記憶作用。
•在順序存儲結構下,棧的插入和刪除運算不需移動表中其他數據元素。
•棧頂指針top動態反映了棧中元素的變化情況
(3)順序存儲和運算:入棧運算、退棧運算和讀棧頂運算。
2.隊列及其基本運算
(1)基本概念:隊列是指允許在一端進行插入,在另一端進行刪除的線性表,又稱“先進先出”的線性表。
•隊尾:允許插入的一端,用尾指針指向隊尾元素。
•排頭:允許刪除的一端,用頭指針指向頭元素的前一位置。
(2)循環隊列及其運算。
所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間。
入隊運算是指在循環隊列的隊尾加入一個新元素。
當循環隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行人隊運算,這種情況稱為“上溢”。
退隊運算是指在循環隊列的隊頭位置退出一個元素并賦給指定的變量。首先將隊頭指針進一,然后將排頭指針指向的元素賦給指定的變量。當循環隊列為空(s=0)時,不能進行退隊運算,這種情況稱為“下溢”。
1.5線性鏈表
在定義的鏈表中,若只含有一個指針域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表。
在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用于存放數據元素值,稱為數據域;另一部分用于存放指針,稱為指針域。其中指針用于指向該結點的前一個或后一個結點(即前件或后件)。
1.6樹和二叉樹
1.樹的基本概念
樹是簡單的非線性結構,樹中有且僅有一個沒有前驅的節點稱為“根”,其余節點分成m個互不相交的有限集合T1,T2,…,T}mm,每個集合又是一棵樹,稱T1,T2,…,T}mm為根結點的子樹。
•父節點:每一個節點只有一個前件,無前件的節點只有一個,稱為樹的根結點(簡稱樹的根)。
•子節點:每~個節點可以后多個后件,無后件的節點稱為葉子節點。
•樹的度:所有節點最大的度。
•樹的深度:樹的最大層次。
2.二叉樹的定義及其基本性質
(1)二叉樹的定義:二叉樹是一種非線性結構,是有限的節點集合,該集合為空(空二叉樹)或由一個根節點及兩棵互不相交的左右二叉子樹組成?煞譃闈M二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹。二叉樹具有如下兩個特點:
•二叉樹可為空,空的二叉樹無節點,非空二叉樹有且只有一個根結點;
•每個節點最多可有兩棵子樹,稱為左子樹和右子樹。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: