日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

后序线索树怎样画图_算法新解刘新宇(二)二叉搜索树:数据结构中的“hello world”...

發布時間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 后序线索树怎样画图_算法新解刘新宇(二)二叉搜索树:数据结构中的“hello world”... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二叉搜索樹BST定義:

基于廣義二叉樹,一顆二叉樹定義:或者為空 或者包含三部分:一個值,一個左分支和一個右分支。這兩個分支也都是二叉樹分支。一顆二叉搜索樹是滿足下面條件的二叉樹:所有左分支的值都小于本節點的值;本節點的值小于所有右分支的值;所以這也代表了BST中的value應當是能夠進行大小比較的。

數據結構表示:

通過鏈表進行表示時,會分為兩大部分:value區與索引區:索引區分為left right兩個區域,自己實現在某些情況下能夠用上parent;value是樹中所保存的關鍵信息;

對于BST書上講解了四種操作:插入 遍歷 搜索 刪除

插入:

我們可以使用下面的算法向一顆二叉搜索樹插入一個鍵K:

如果樹為空,創建一個葉子節點,令該節點的key = k; 如果k小于根節點的key,將它插入到左子樹中; 如果k大于根節點的key,將它插入到右子樹中。

存在一個特殊情況,當k等于根節點的key時,說明已經存在。這個時候可以按照具體需求來操作:如重寫數據或者忽略。

插入算法是遞歸或者遞推實現的,可以嘗試一下。

遍歷:

前序遍歷 中序遍歷 后續遍歷

BST的中序遍歷是最有特點的。對BST進行中序遍歷,元素會按照從小到大的順序輸出,這個是由二叉搜索樹的定義決定的。

遍歷這個問題可以先通過遞歸的方式簡單進行實現,理解它的定義。實現后通過遞推的方式進行實現,對個人的幫助較大。先序遍歷 中序遍歷可以通過一個棧空間輔助實現。后序遍歷會稍微復雜些,也是通過棧實現,其中的元素需要有一個標志位,確定訪問次數,確保左右子樹均訪問后才能將該節點出棧。

搜索:

二叉搜索樹有三種搜索:在樹中查找一個key,查找最大或最小的元素;查找給定元素的前驅或者后繼。

二叉搜索樹非常適合進行元素的查找:

如果樹為空,查找失敗;如果根節點的key等于查找值,查找成功,返回根節點作為結果;如果待查找的值小于根節點的key,繼續在左子樹中遞歸查找;如果待查找的值大于根節點的key,繼續在右子樹中遞歸查找;

最小元素和最大元素

利用最小元素在樹的最左邊,最大元素在樹的最右邊的特性進行查找;

前驅與后繼——>容易讓人聯想到二叉線索樹

在實際使用一些數據結構的時候,前驅和后繼意義較大。值得研究一下。

刪除一個元素

不用真實的刪除,單純的用一個標記位進行標記?

或者通過遞歸的方式進行刪除

總結

以上是生活随笔為你收集整理的后序线索树怎样画图_算法新解刘新宇(二)二叉搜索树:数据结构中的“hello world”...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。