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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

怎样推断一棵二叉树是全然二叉树

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样推断一棵二叉树是全然二叉树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

嚴蔚敏那本教材上的說法:一個深度為k,節點個數為 2^k - 1 的二叉樹為滿二叉樹。這個概念非常好理解,

就是一棵樹,深度為k,而且沒有空位。

首先對滿二叉樹依照廣度優先遍歷(從左到右)的順序進行編號。

一顆深度為k二叉樹,有n個節點,然后,也對這棵樹進行編號,假設全部的編號都和滿二叉樹相應,那么這棵樹是全然二叉樹。

?

隨意的一個二叉樹,都能夠補成一個滿二叉樹。這樣中間就會有非常多空洞。在廣度優先遍歷的時候,假設是滿二叉樹,或者全然二叉樹,這些空洞是在廣度優先的遍歷的末尾,所以,但我們遍歷到空洞的時候,整個二叉樹就已經遍歷完畢了。而假設,是非全然二叉樹,

我們遍歷到空洞的時候,就會發現,空洞后面還有沒有遍歷到的值。這樣,僅僅要依據是否遍歷到空洞,整個樹的遍歷是否結束來推斷是否是全然的二叉樹。

算法例如以下:

bool is_complete(tree *root) { queue q; tree *ptr; // 進行廣度優先遍歷(層次遍歷),并把NULL節點也放入隊列 q.push(root); while ((ptr = q.pop()) != NULL) { q.push(ptr->left); q.push(ptr->right); } // 推斷是否還有未被訪問到的節點 while (!q.is_empty()) { ptr = q.pop(); // 有未訪問到的的非NULL節點,則樹存在空洞,為非全然二叉樹 if (NULL != ptr) { return false; } } return true; }

總結

以上是生活随笔為你收集整理的怎样推断一棵二叉树是全然二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。

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