(2 19)資料結構

2021-10-07 11:22:52 字數 1952 閱讀 6611

性質:兒子的值一定不小於父親的值,樹的結構是從上到下,從左到右緊湊排列的。

插入數值:先在末尾插入該數值,然後不斷向上提公升直到沒有大小顛倒為止。

刪除最小值:首先把堆的最後乙個節點的數值複製到根節點上,並且刪除最後乙個節點。然後不斷向下交換直到沒有大小顛倒為止。在向下交換的過程中,如果有2個兒子,那麼選擇數值較小的兒子(如果兒子比自己小的話)進行交換。

時間複雜度:堆的兩種操作所花的時間與樹的深度成正比,n個元素的時間複雜度是o(logn)

堆的實現:

給每個節點賦予乙個編號,用陣列來儲存

左兒子的編號是自己的編號x2 + 1

右兒子的編號是自己的編號x2 + 2

)優先輸出最大的元素

#include

#include

#include

#include

#include

using namespace std;

void solve()}

int main(

)

優先輸出最小的元素

#include

#include

#include

#include

#include

using namespace std;

void solve()}

int main(

)

二叉搜尋樹可以高效的實現:插入乙個數值、查詢是否包含某個數值、刪除某個數值

性質:左子樹上的所有節點都比自己的小

右子樹上的所有節點都比自己大

查詢10:

插入6:

刪除15:

如果刪除的節點沒有左兒子,那麼就把右兒子提上去

如果刪除的節點的左兒子沒有右兒子,那麼就把左兒子提上去

以上兩種情況都不滿足,就把左兒子的子孫中最大的節點提到需要刪除的節點上

二叉樹的時間複雜度:o(log n)

二叉樹的操作跟所需要的時間成正比

二叉搜素樹的實現:

在這裡插入**片

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 01 資料與資料結構

1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...