唐老師 資料結構 專題五

2021-06-19 03:13:17 字數 711 閱讀 7185

這個專題講的內容是遞迴,並且這節的**量都不是很大,關鍵就是遞迴的思想,對於可以用遞迴去完成的任務,應該運用整體的思想,不用把每一步都想得很清楚,並且一定要有最後的結束判斷;

對 還有個重要內容就是唐老師講到了計算機在函式與函式呼叫的時候,要利用棧,而這個棧是類似於我們之前用到的順序棧,就是一開始就已經限定了長度,每當從乙個函式呼叫另乙個函式的時候,就要把當前函式的內容壓到棧裡去,所以如果遞迴過深或者函式內部的陣列過大的時候,就會發生棧溢位,這個是一定要注意的。

還有就是回溯,並且回溯是和遞迴聯絡在一起的,因為回溯的意思就是從問題出發一直搜尋所有狀態,當達到某種狀態,即向後退,當所有的都達到了,就結束。這裡因為有後退,而後退的話要知道原來的內容,並且所有的內容形式都是一樣的,只是資料不一樣,所以就可以利用遞迴來解決這個問題。(這裡要記住就是函式內部的資料都是儲存在棧中的)。

關於回溯的程式就是八皇后的問題,這裡就貼一部分體現出回溯的**。

這個是放置皇后的函式(這裡有個問題需要先宣告一下,就是可能當前位置放置乙個皇后沒有問題,但是要考慮下一行是否可以放置皇后,如果下一行找不到放置皇后的地方,那麼改行的皇后位置就放置錯誤了

void find(int xi)

else

}}}

唐老師資料結構專題八2

前面已經說到,二叉樹使用及其廣泛,現在就來說一下 在這裡先進行宣告 這裡所有樹的結點完全沒有指向父親結點的指標,唐老師沒有指名原因,但是他後面的一句話,感覺應該是他的原因,那就是做出二叉樹,也是為了節省空間,所以就沒有在樹節點裡包含指向父親結點的指標。首先是二叉樹的定義 二叉樹是由 n 個結點組成的...

唐老師資料結構專題八3

關於二叉樹的建立 這裡有個問題,就是二叉樹,就不能想1中講的那樣,建立兩個鍊錶,乙個孩子鍊錶,乙個組織鍊錶,因為二叉樹的孩子是分左右的,這個順序不能搞混,所以就直接是在每個二叉樹的結點中設定兩個指標,分別指向左右孩子,這樣就可以了,但是又有乙個問題隨之而來,那就是如何定位?這個問題唐老師給了乙個很形...

唐老師資料結構 專題四的筆記

首先是寫棧的習慣 一定要在建立完棧後 就立即寫上銷毀棧的函式 否則很容易遺忘銷毀 導致記憶體洩露 在唐老師講的符號配對檢測的程式時 有乙個小細節 老師並沒有提出來 但是後來發現了 char c char linkstack pop stack 進行檢測 格外注意 一定要先c null if c nu...