挑戰二 第八章樹

2021-08-19 02:02:07 字數 1249 閱讀 7315

樹是一種用於表達層級結構的資料結構。

樹結構是實現高效演算法與資料結構的基礎,是資訊處理與程式設計中不可欠缺的概念。

第八章大概在兩周前就看完了(真的還是「看」完了,到底理解了沒有,記住了沒有還真的不知道。。。)然後現在翻回來複習總結一下吧。。。。

有根樹的表達:

「左子右兄弟表示法」表示樹。

struct nodet[max]; 

//或者

int parent[max],left[max],right[max];

引用u.parent即可知道各節點的父結點。子結點,兄弟結點同理。

不存在父結點就是根。不存在u.left就是葉子結點。不存在u.right就是最右側子結點。

求各結點的深度(遞迴)

setdepth(u,p)
「左子右兄弟」如果右結點不空有兄弟則不改變深度直接呼叫,如果左結點不空則深度加一呼叫。

二叉樹的表達

大致同上。。

樹的遍歷

pregram(前序)、inordor(中序)、postorder(後序) 遍歷均為遞迴遍歷。

演算法時間複雜度o(n)

pregram遍歷

pregram (u)
inorder遍歷

inorder (u)
postorder遍歷

postorder(u)
樹的重建

(已知樹的前序遍歷和中序遍歷求樹的後序遍歷)

。。。。。講不清楚啊 。。但是樹上說的超清楚啊。。。

(對著書打一遍吧。。。。)

首先按前序遍歷的順序依次訪問各結點。訪問過程中,我們通過中序遍歷得知各子樹內中序遍歷的順序。從而重建以當前結點c為根的左右子樹

也就是說,設前序遍歷的當前結點為c,c在中序遍歷中的位置是m,m左側就是c的左子樹,右側就是右子樹,然後同理遞迴

。說是總結,其實並不算總結,只能說是抄書。。要說會了麼,只能說懂了,並不能算是會。。說是刷書其實也只是抄書。。。。

沒辦法,感覺確實是智商不夠然後做的所有的東西都是很機械的重複性工作,很難去舉一反三。。emm然後就是,沒有了。既然決定刷書寫部落格做總結,就算是抄,我也要抄完的。。。

還有就是。。還有40多天吧,其實沒有40多天就是40天了吧。就是邀請賽。。花錢買資格,還不一定買的到。。沒辦法。。很菜很需要提高。喝個雞湯:起點越低,進步越大。

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...

第八章(筆記)

能在 中進行記憶體單元的定址的暫存器只有4個,分別是bx si di bp 其中bx bp 是基址,bx對應的段位址是ds,bp對應的段位址是ss si di 是變址,單獨使用時段位址是ds,組合使用段位址是跟隨組合的基址對應的段位址 中進行記憶體單元定址彙總 si di bx bp 常量 si 常...

第八章 字典

d 空字典 d 這就是字典 d dict.fromkeys a b d dict zip keyslist,valslist d dict name bob age 22 建立字典的函式 d name 通過索引key獲取對應的value d.keys 返回d字典物件所有key,返回乙個列表 d.va...