專題 資料結構與演算法

2021-07-30 23:37:43 字數 1565 閱讀 1979

圖的最優路徑

一定要有表頭!

一切操作基於表頭!

執行緒池的原理就是基於表頭操作!

void fun(int n)

int main(void)

呼叫時一直往裡呼叫,終止點一直往外返回。利用這個特點咱們可以解決很多問題。

typedef

struct _list ;

struct  _list ;

struct _data ;

struct _list ;

typedef

struct _node node;

struct _head ;

struct _data ;

常用鍊錶演算法:建立、刪除節點、插入節點、取出節點、銷毀

鍊錶演算法設計經驗:抽象的地方用簡單例子來理解。

二叉樹資料結構定義:總結:

資料結構的定義還是比較自由的,只要有左右指標域就可以了。

二叉樹遞迴法建立:總結:

其中重要的思想有遞迴以及二叉樹的結構性質;遞迴的核心思想就是自己只幹自己的事,處理上面傳遞進來的引數以及條件,如果無法完成任務就傳給孩子去完成這項使命;二叉樹的核心理論就是它的結構性質,也就是說當前節點的左右孩子的左右孩子也必須要初始化(null),也就是說當前節點的孫子都要指向空指標來表示結尾,否則永遠找不到樹頂,直到棧溢位也無濟於事。傳遞經來的root是在主呼叫函式中已經初始化的,

二叉樹遞迴遍歷:總結:

通過二叉樹的結構圖來輔助解析這段**,你的思路會異常清晰。

二叉樹深度和節點數的關係公式總結:

deep=01, node=01

deep=02, node=02

deep=03, node=04

deep=04, node=08

deep=05, node=16

最後總結出來的數學公式為:2^(deep-1),即2的(deep-1)次方。

圖的最優路徑都是根據前面的遞迴基礎引申來來的,所以前面的遞迴和二叉樹一定要熟練掌握它的核心思想,二分法查詢也是遞迴的應用一種,二分法排序也是遞迴的應用。

資料結構與演算法 樹專題

pass 2.1 二叉樹下乙個節點 coding utf 8 class treelinknode def init self,x self.val x self.left none self.right none self.next none class solution def getnext ...

資料結構專題

一.並查集 主要操作 1.合併兩個不相交集合 2.判斷兩個元素是否屬於同一集合 時間複雜度 o n n 其中 x 對於x 宇宙中原子數之和,x 不大於4,事實上,路經壓縮後的並查集的複雜度是乙個很小的常數。模板題 include includeusing namespace std for poj ...

資料結構與演算法 演算法 演算法和資料結構

資料結構與演算法 演算法 好吧,在這裡,您被優秀或優秀的軟體開發人員所隔開。在這種情況下,我會告訴您一開始或至少在我的情況下,並且我知道大多數時候,對於我認識的大多數人,您會覺得自己是乙個無能的人或白痴。基本上,我怎麼可能不理解這一點,然後您會感到沮喪。在這種情況下,我會告訴您情況並不像您想的那麼糟...