資料結構知識點

2021-07-15 03:04:34 字數 2366 閱讀 9741

1、線性結構與非線性結構

線性結構:線性表,棧,隊;乙個根節點,最多乙個前節點乙個後節點;首節點無前節點,尾接點無後節點

非線性結構:樹形結構,圖形結構

線性表:由一組資料元素構成,資料元素的位置只取決於自己的序號;陣列

棧:限定只能在表的一端進行插入和刪除,先進後出,只能在棧頂進出

佇列:只能在表的一段進行插入,在表的另一端進行刪除。先進先出,進的叫隊尾,出的叫隊頭

迴圈佇列:首尾相接的佇列

線性鍊錶:單鏈表,雙鏈表,迴圈鍊錶

樹:由乙個或多個結點組成的有限集合,僅只有乙個根節點

結點:樹中的元素

結點的度:結點擁有的子樹數

結點的層次:從根結點開始算起,根為第一層

葉子:度為零的結點,也稱端結點

孩子:結點子樹的跟稱為該結點的孩子結點

深林:m顆互不相交的樹的集合

深度:樹中結點的最大層次數

滿二叉樹:所有分支結點都存在左右子樹,且所有葉子結點都在同一層上。

完全二叉樹:除最後一層外,每一層都取最大結點數,最後一層結點都集中在該層最左邊的若干位置。

二叉樹:二叉樹的第i層上至多有2(i-1)次方(i大於等於1)個結點。

深度為h的二叉樹中至多含有2(h-1)次方個結點。 

若在任意一棵二叉樹中,有n0個葉子結點(度為0),有n2個度為2的結點,則:n0=n2+1 

具有n個結點的完全二叉樹的深度為[log2n]+1,其中 [log2n]表示log2n 的整數部分。

設完全二叉樹共有n個結點,如從根結點開始,按層序(每一層從左到右)用自然數1,2,…,n給結點進行編號,則對於編號為k(k=1,2,…,n)的結點有以下結論:

①若k=1,則該結點為根結點,它沒有父結點;若k>1,則該結點的父結點的編號為int(k/2)。 

②若2k≤n,則結點k的左子結點編號為2k;否則該結點無左子結點(顯然也沒有右子結點)。 

③若2k+1≤n,則結點k的右子結點編號為2k+1;否則該結點無右子結點。

二叉樹的遍歷:

先序遍歷:根左右

中序遍歷:左根右

後序遍歷:左右根

2、鏈式儲存與順序儲存

順序儲存:將邏輯上相鄰的資料元素儲存在物理上相鄰的儲存單元裡。陣列

鏈式儲存:每個節點都由兩部分組成,資料域與指標域。鏈式

順序儲存二叉樹必須按完全二叉樹的形式儲存,將造成儲存的浪費。

3、排序方法:

插入排序:直接、折半插入排序

選擇排序:簡單選擇排序 堆排序

交換排序:起泡排序,快速排序

歸併排序:

折半插入排序:折半插入排序在尋找插入位置時,不是逐個比較而是利用折半查詢的原理尋找插入位置 。待排序元素越多,改進效果越明顯。

簡單選擇排序

:首先從1~n個元素中選出關鍵字最小的記錄交換到第乙個位置上。然後再從第2 個到第n個元素中選出次小的記錄交換到第二個位置上,依次類推。 

時間複雜度為o(n2),最壞情況下需要比較 n(n-1)/2次 

適用於待排序元素較少的情況。

氣泡排序(起泡排序)

思想:小的浮起,大的沉底。從左端開始比較。

4、圖:節點(圖中稱頂點)間的連線是任意的。

圖的分類:有向圖、無向圖

網:帶權的圖。 

頂點的度:依附於該頂點的邊數或弧數。 

出度:(僅對有向圖)以該頂點為尾的弧數。 

入度:(僅對有向圖)以該頂點為頭的弧數。 

路徑:頂點a與頂點c之間存在一條路徑。路徑上邊或弧的數目稱為該路徑的路徑長度。 

連通圖:在無向圖g中,任意兩頂點vi、vj都是連通的,則稱g是連通圖。n個頂點的連通圖中邊的條數至少為n-1條.

資料結構 知識點

定義 度 兒子數 分支節點 除了根和葉子的節點 根的深度為1 資料結構的分類 資料結構分為邏輯結構和物理結構。邏輯結構 表現資料之間的關係的一種資料結構,分為線性結構和非線性結構。物理結構 表現資料如何儲存的一種資料結構,通常分為順序結構 鏈式結構 索引結構和雜湊結構。有序表,也叫有序線性表,資料按...

資料結構,知識點

二叉樹 定義 二叉樹在圖論中是這樣定義的 二叉樹是乙個連通的無環圖,並且每乙個頂點的度不大於3。有根二叉樹還要滿足根節點的度不大於2。基本概念 二叉樹是遞迴定義的,其結點有左右之分,邏輯上二叉樹有五種基本形態 1 空二叉樹 2 只有乙個根節點的二叉樹 3 只有左子樹 4 只有右子樹 5 完全二叉樹。...

資料結構小知識點

1,鍊錶專業術語 首節點 第乙個有效節點 尾節點 最後乙個有效節點 頭結點 第乙個有效節點之前的那個節點,頭結點並不存放有效資料,加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 2,棧的分類 靜態棧 用陣列實現 動態棧 用鍊錶實現 3,迴圈佇列 ...