資料結構小知識點

2021-06-08 02:55:06 字數 1863 閱讀 1845

1,鍊錶專業術語:

首節點:第乙個有效節點

尾節點:最後乙個有效節點

頭結點:第乙個有效節點之前的那個節點,頭結點並不存放有效資料,加頭結點的目的主要是為了方便對鍊錶的操作

頭指標:指向頭結點的指標變數

尾指標:指向尾節點的指標變數

2,棧的分類

靜態棧:用陣列實現

動態棧:用鍊錶實現    

3,迴圈佇列(靜態佇列,陣列)的講解:

1,靜態佇列為什麼是迴圈佇列?

因為迴圈佇列不會浪費記憶體,如果不是迴圈的話,因為是靜態佇列,記憶體是作業系統分配的,當出棧的時候該出棧的元素不能

及時釋放**,而不能利用,從而造成了浪費

2,迴圈佇列需要幾個引數來確定?及其含義講解

需要兩個引數來確定:front隊首指標和rear隊尾指標

兩個引數不同場合的不同含義:

1),  佇列初始化:front和rear的值都是0

3),  佇列空:front和rear的值相等,但不一定是0

3, 迴圈隊列入隊偽演算法的講解:

1),將值存入r所代表的位置

2),錯誤的寫法,rear = rear+1

正確的寫法,rear = (rear+1)%陣列的長度,因為是迴圈,不能無限增大,會回到原點

4,迴圈佇列出隊偽演算法講解:

front = (front +1)%陣列的長度

5,如何判斷迴圈佇列是否為空

如果front 與 rear 的值相等,則該佇列一定為空  

6,如何判斷迴圈佇列是否為滿. 兩種方式:

1),多增加乙個標識引數,如計算當前佇列元素的個數,但是每次增刪的時候都需要修改該引數,麻煩

2),少用最後乙個元素,如果rear 和 front 緊挨著(不是相等),則表明佇列已滿,

( r+1 )%陣列長度 == f ? 「已滿」 : "不滿"

遞迴和迴圈

遞迴:易於理解,速度慢,儲存空間大

迴圈:不易理解,速度快,儲存空間小

樹的基本概念:

深度:從根節點到最底層節點的層數稱之為深度,根節點是第一層

葉子節點:沒有子節點的節點

非終端節點:實際就是非葉子節點

度:子節點的個數稱為度

樹的分類

一般樹:任意乙個節點的子節點的個數都不受限制

二叉樹: 任意乙個節點的子節點的個數最多兩個,且字節點的個數不可更換

分類:一般二叉樹 :

滿二叉樹:在不增加樹的層數的前提下,無法再多新增乙個節點的二叉樹就是滿二叉樹

完全二叉樹:如果只是刪除了滿二叉樹最底層最右邊的連續若干個節點,這樣形成的二          叉樹就是完全二叉樹。用陣列來儲存的話,其內部就一定要用完全二叉樹,滿二叉樹是完全二叉樹的乙個特例

樹的儲存:

二叉樹的儲存

連續儲存[完全二叉樹]

優點:查詢某個節點的父節點和子節點(也包括判斷有沒有子節點)速度很快,有公式

缺點:耗用記憶體空間過大,因為非完全二叉樹要先轉換為完全二叉樹先                                  

鏈式儲存:

一般樹的儲存:

雙親表示法:求父節點比較方便。

孩子表示法:求子節點比較方便。

雙親孩子表示法:求父節點和子節點都不很方便,但是結構複雜

孩子兄弟表示法,又稱二叉樹表示法或二叉鍊錶表示法:把乙個普通樹轉化成二叉樹來儲存。

森林的儲存:先把森林轉換為二叉樹,再對二叉樹進行儲存

資料結構 知識點

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

資料結構知識點

1 線性結構與非線性結構 線性結構 線性表,棧,隊 乙個根節點,最多乙個前節點乙個後節點 首節點無前節點,尾接點無後節點 非線性結構 樹形結構,圖形結構 線性表 由一組資料元素構成,資料元素的位置只取決於自己的序號 陣列 棧 限定只能在表的一端進行插入和刪除,先進後出,只能在棧頂進出 佇列 只能在表...

資料結構,知識點

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