1. 程式人生 > >學習筆記【第五章】

學習筆記【第五章】

理解 空間 老師 過程 二叉 開始 產生 遺憾 got

Part.A 小結&感悟

  想起來在這個學期開始前認識的一個學長曾經對我說過,你們下學期會學到一個叫做二叉樹的東西,當年我可是飽受折磨啊……

  學習之前一直以為是很難理解的一個東西,但是現在發現這一章的知識總體來看非常條理和具體,同時二叉樹的數據結構本身確實是存在其難理解的地方的,對於這一章中屢屢出現的遞歸算法,我總是需要花費大量的時間才能夠理解,在想明白之後又開始對人類的智慧產生濃濃的敬佩…

關於這裏大量的概念和術語,我這裏簡單做了一點整理,

技術分享圖片

Part B 反思&計劃

  在整理知識結構的過程中也順便回想了一遍這些知識和概念,其實這些都是最最基礎的東西,只要理解了就很容易記住,想學好這部分的內容還是需要大量的編程練習,熟練地實現對應的算法,然後加強對於遞歸算法的理解和運用能力。

  這一章我印象很深刻的編程題目,深入虎穴,老師上課也進行了詳細的講解,我最開始的想法也是構造二維數組,但是這樣的算法造成了極大的空間浪費(可以利用類似稀疏矩陣的算法節省空間)這是我沒有考慮到的,一個好的程序需要有優秀的空間利用能力,實現效率的最大化,這道題目是一道看似不難實則不容易實現的題目,這也是我的一個問題,光有想法是不行的,需要每一步都能對應實現,就像這道題,在真正上手編程之後屢屢卡住,以後要更加註意思路的梳理。也暴露出我對前面所學知識的綜合利用能力還不強(完全沒想到利用稀疏矩陣……)

  遺憾的是,我最終沒能獨立完成這道題的編程,以後還會回頭再來多回顧這道題目的。

Part C 一些想法&疑問

  這是我隨手寫的一個小小的遞歸算法

1  void GoThrough(Node T)   
2  {
3      if(!EmptyTree T) break;   //EmptyTree 判斷樹是否為空
4      GoThrough(T.Lchild);
5      GoThrough(T.Rchild);
6  }

  那麽如果把3、4行的內容對換,會造成什麽樣的影響,謝謝老師的解答(我在對遞歸算法的理解上始終不通順,希望老師別介意問題太低級了哈哈哈)

學習筆記【第五章】