為什么需要平衡二叉樹?

電腦雜談  發布時間:2019-06-18 13:09:03  來源:網絡整理

c 二叉排序樹_c 二叉樹的遍歷_二叉樹的遍歷算法 c

前言:最近看《計算機科學的基礎》以及老大的代碼,很需要樹結構的相關基本知識內容,在看老大的源碼關于BT和RBT的時候,將平衡樹和二叉排序樹,關聯到一起了。簡單說明記錄一下!

呃,如何調整的內容,很都總結過了,我就借花獻佛,直接引用啦(好吧,我是不會承認我不會c 二叉排序樹,還很懶滴)

二叉樹的遍歷算法 c_c 二叉排序樹_c 二叉樹的遍歷

演示平衡二叉樹旋轉

我最開始想到這個問題的時候,是在看老大代碼的時候,我先看的是BT代碼,后來我在看RBT的時候,看到了旋轉平衡處理,然后我就很懵逼,不明白為什么要轉,因為不轉的話,也是符合排序樹的標準的。還有一個很蠢萌的問題是:我一直以為BT是二叉,其實他奶奶個腿兒,是多路搜索,我呸,暴露智商了!

c 二叉樹的遍歷_c 二叉排序樹_二叉樹的遍歷算法 c

話說回來,為什么要調整:平衡二叉樹

簡單說來,平衡二叉樹,一定是二叉排序樹,之所以將排序樹,調整為平衡狀態,是為了在二叉排序樹近似為鏈的情況下,增強其查找性能,降低時間復雜度。

c 二叉排序樹_二叉樹的遍歷算法 c_c 二叉樹的遍歷

其實,從上述內容來看,我整篇文章幾乎沒有自己的內容去表達技術問題,那我為什么寫這篇博客呢?

1,我將我學過的內容,聯系起來了。因為老大給我推薦的書《計算機科學的基礎》最近剛好看到樹結構和表結構模型,我一直在想二叉排序樹的內容,包括樹的存儲方式。今天看BT和RBT的時候,突然就覺得,RBT的性能肯定綜合會比BT高,為什么呢,因為二叉排序樹的特性會比多路搜索要簡單處理,你想一下嘛:二叉排序樹,不是在這邊,就是在那邊(二選一),而多路搜索,我也不知道是幾選幾啊,還有分裂,好吧,這真不是我智商低的托詞。

c 二叉樹的遍歷_二叉樹的遍歷算法 c_c 二叉排序樹

了解了innodb的索引后,我們再來分析自增主鍵和業務主鍵優缺點:自增主鍵:寫入、查詢效率和磁盤利用率都高,但每次查詢都需要兩級索引,因為線上業務不會有直接使用主鍵列的查詢。因為主鍵的作用,一是建主鍵索引,二是做為子表的外鍵,所以組合主鍵的字段個數少了,不僅節省了運行時間,而且節省了索引存儲空間。4) 對于聲明為:integer primary key的主鍵來說,這列會按默認方式排序,所以雖然在數據字典中沒有對它生成索引,但它的功能就像個索引。

今天,總的來說,是很完美的一天。因為我之前看老大的代碼,有些地方都不是很明白,然后還要厚著臉皮問。雖然面上沒紅,但心里一直鄙視自己的智商。但是,我堅持下來了,今天把全部的代碼看完了,我說了說我的理解,貌似還是沒有全對,但是自己找到感覺了。

如果肯定不包含,則跳過對該子樹的系統搜索,一層一層地向它的祖先節點繼續搜索,直到遇到一個還有未被搜索過的兒子的節點,才轉向該節點的一個未曾搜索過的兒子節點繼續搜索。歌曲列表:手機本地音樂 ——存放通過掃描方式獲取的所有手機本地的音樂列表最常播放的音樂 ——列表存放了系統自動記錄的用戶經常播放的音樂列表最新增加的音樂 ——存放了本次掃描與上一次掃描時所增加的音樂列表已下載的音樂 ——存放了所有成功下載的音樂列表自定義列表的音樂 ——用戶創建測自定義音樂列表歌詞功能:手動下載自動下載自動下載手動匹配歌詞自動匹配手動調整歌詞顯示位置1.輸入關鍵詞搜索歌曲名稱搜索歌手名稱搜索專輯名稱搜索簡拼搜索2.推薦關鍵詞搜索最流程的歌曲最熱門的歌手影視主題曲外文經典音樂經典廣告歌曲歌曲3.正文關鍵詞搜索在瀏覽新聞時。中序遍歷的非遞歸方式 思想是:1. 從根節點一直往下找左孩子節點,直到找到最后一個左孩子節點(用棧將此路徑保存,但不訪問)2.訪問最后一個左孩子節點c 二叉排序樹,然后再訪問根節點(要先彈出棧,就是在棧中取上一層節點)3.在訪問當前節點(最后一個左孩子節點)的兄弟節點(右孩子節點),這里要注意如果兄弟節點是一個葉節點就直接訪問,否則是兄弟節點是一顆子樹的話不能馬上訪問,要先來重復 1, 2,3步驟, 直到棧為空,循環結束。


本文來自電腦雜談,轉載請注明本文網址:
http://www.rtcsln.tw/a/jisuanjixue/article-106858-1.html

    發表評論  請自覺遵守互聯網相關的政策法規,嚴禁發布、暴力、反動的言論

    • 鄭谷
      鄭谷

      導致北洋艦隊大東溝海戰失利

    熱點圖片
    拼命載入中...
    黑龙江快乐十分开奖直播