高階資料結構

2021-10-23 05:39:11 字數 1241 閱讀 7148

與普通佇列的區別

1.保證每次取出的元素時佇列中優先順序最高的

2.優先級別可自定義

場景 從雜亂無序的資料中按照一定的順序(或者優先順序)篩選資料

本質 1.二叉堆的結構,堆在英文裡叫binary heep

2.利用乙個陣列結構來實現完全二叉樹

特性 1.陣列裡的第乙個元素array[0]擁有最高的優先順序

2.給定乙個下標i,那麼對於元素array[i]而言

1).父節點 對應的元素下標是(i-1)/2

2).左側子節點 對應的元素下標是2*i + 1

3).右側子節點 對應的元素下標是2*i + 2

3.陣列中每個元素的優先順序都必須要高於它兩側子節點

圖的基本知識

階、度樹、森林、環

有向圖、無向圖、完全有向圖、完全無向圖

連通圖、聯通分量

圖的儲存和表達方式:鄰接矩陣、鄰接鍊錶

圍繞圖的演算法

圖的遍歷:深度優先、廣度優先

環的檢測:有向圖、無向圖

拓撲排序

最短路徑演算法:dijkstra、bellman-ford、floyd warshall

圖的著色、旅行商問題等

也稱字典樹

這種資料結構被廣泛地運用在字典查詢當中

什麼是字典查詢?

例如:給定一系列構成字典的字串,要求在字典當中找出所有以"abc"開頭的字串

方法一:暴力收索法

方法二:字首樹

字首樹重要性質

1.每個節點至少包含兩個基本屬性

1.)children:陣列或者集合,羅列出每個分支當中包含的所有字元

2.)isend:布林值,表示該節點是否為某字串的結尾

2.根節點是空的

3.除了根節點,其他所有節點都可能是單詞的結尾,葉子節點一定都是單詞的結尾

什麼是 線段樹

一種按照二叉樹的形式儲存資料的結構,每個節點儲存的都是陣列裡某一段的總和。

重要的基本特徵

1.利用陣列來表示多叉樹的結構,和優先佇列有些類似

2.優先佇列是用陣列來表示完全二叉樹,而樹狀陣列是多叉樹

3.樹狀陣列的第乙個元素時空節點

4.如果節點tree[y]是tree[x]的父節點,那麼需要滿足y=x-(x&(-x))

高階資料結構

struct treenode treenode是經典的二叉樹節點,在資料的序列化和反序列按照層遍歷來處理的。以上二叉樹會被序列化為 1 root節點1,是第一層 2,3 然後第二層是2,3 4,第三層分別是2節點的兩個孩子節點空,用 來表示,然後3節點的左孩子為4,右孩子節點為 5 第四層4節點的...

高階資料結構c

動態查詢字首和 vector int bits 放樹狀陣列 int n 原陣列的大小 1表示樹狀陣列的大小,為什麼要 1呢,因為樹狀陣列多了乙個前0個數的和 intquery int x void add int i,int x 功能比樹狀陣列多一點 const int e 100006 struc...

MATLAB 高階資料結構 table

第一種根據變數名 var 構造表,所有變數的行數必須相同 第二種為 建立空間,sz 為行向量,指定維數,例如 4,3 表示 4 行 3 列 vartypes為資料型別元胞陣列。sz 4 3 vartypes t table size sz,variabletypes vartypes t table...