數據結構--二叉樹相關習題5(判斷二叉樹是否是完全二叉樹 )

1.判斷二叉樹是否是完全二叉樹?

辨別:

不能使用遞歸或者算節點個數和高度來判斷。

滿二叉樹可以用高度和節點來判斷,因為是完整的。

但是完全二叉樹前面是滿的,但是最后一層是從左到右連續這種

如果仍然用這種方法的話,如下圖兩個識別方法是一樣的,但是無法準確識別

完全二叉樹:前h-1層是滿的,最后一層是從左到右連續。

如果走層序那么一定是連續的,也就是說要通過層序遍歷來走。

思路:1.層序遍歷走,空也進序列。

2.遇到第一個空時開始判斷,如果后面都為空則是完全二叉樹,若空后面還出席那非空的情況則說明不是完全二叉樹。

代碼實現:

//判斷二叉樹是否是完全二叉樹
bool TreeComplete(BTNode* root)
{ Queue q;//仍然使用隊列去實現QueueInit(&q);if (root)QueuePush(&q,root)while (!QueueEmpty){BTNode* front = QueueFront(&q);QueuePop(&q);//遇到第一個空就可以開始判斷,如果隊列中還有非空,就不是完全二叉樹。if (front == NULL){break;}QueuePush(&q, front->left);QueuePush(&q, front->right);}while (!QueueEmpty){BTNode* front = QueueFront(&q);QueuePop(&q);//如果仍有非空元素,直接
//		return false;if (front){QueueDestroy(&q);//如果存在非空。return false;}QueueDestroy(&q);return true;
//最終QueueDestroy,再返回}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/43529.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/43529.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/43529.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

暑期備考2024小學生古詩文大會:吃透真題和知識點(持續)

2024年上海市小學生古詩文大會的自由報名初賽將于10月19日(星期六)正式開始,還有3個多月的時間。 為幫助孩子們備考,我持續分享往年上海小學生古詩文大會真題,這些題目來自我去重、合并后的1700在線題庫,每…

加密與安全_密鑰體系的三個核心目標之完整性解決方案

文章目錄 Pre機密性完整性1. 哈希函數(Hash Function)定義特征常見算法應用散列函數常用場景散列函數無法解決的問題 2. 消息認證碼(MAC)概述定義常見算法工作原理如何使用 MACMAC 的問題 不可否認性數字簽名(Digital …

SketchUp Pro 2024:現代科技之詩意體驗

在那遙遠的唐朝,李白曾以詩酒為伴,游歷山川,揮灑才情。而今,若李白穿越時空,手握現代科技之利器——SketchUp Pro 2024,定會以詩意之筆,描繪這款軟件的神奇與魅力。 初識SketchUp Pro 2024 初…

Vue Router:History 模式 vs. Hash 模式

在開發 SPA(單頁應用程序)時,路由管理是不可或缺的一部分。Vue.js 框架中的 Vue Router 提供了兩種主要的路由模式:History 模式和 Hash 模式。理解這兩種模式的區別及其實現方式,對于開發和部署 Vue 應用至關重要。 …

k8s record 20240708

一、PaaS 云平臺 web界面 資源利用查看 Rancher 5臺 CPU 4核 Mem 4g 100g的機器 映射的目錄是指docker重啟后,數據還在 Rancher可以創建集群也可以托管已有集群 先docker 部署 Rancher,然后通過 Rancher 部署 k8s 想使用 kubectl 還要yum install 安…

如何分析前后端bug?

如何分析前后端bug,我來支你1??招 📝一般通過查看接口的方式分析前后端bug。 . 【方法】: web項目,用瀏覽器自帶的F12抓包看接口請求。 app客戶端,一般用fiddler等工具進行抓包接口。 . ?用經典的電商項目舉例&…

應用軟件受到網絡攻擊怎么辦?

大家都知道在目前的互聯網社會中,大型的網絡游戲與電商網站企業是網絡攻擊的重要對象,同時軟件應用也無法避免地會受到各種網絡攻擊,那么當我們的軟件應用被攻擊時,該怎么辦呢? 首先我們可以使用高防CDN,安…

2. 年齡問題

年齡問題 題目描述 本題為填空題,只需要算出結果后,在代碼中使用輸出語句將所填結果輸出即可。 S 夫人一向很神秘。這會兒有人問起她的年齡,她想了想說: "2020 年前,我丈夫的年齡剛好是我的 22 倍,…

ATA-8035射頻功率放大器在聲動力療法中的應用

聲動力療法是一種基于聲波能量的治療方法,廣泛應用于醫療和美容領域。它利用高強度聚焦的聲波來實現切割、破碎或加熱組織,以治療各種疾病和美容問題。在聲動力療法中,射頻功率放大器起著至關重要的作用,它負責提供足夠的能量來激…

達夢數據庫的系統視圖v$auditrecords

達夢數據庫的系統視圖v$auditrecords 在達夢數據庫(DM Database)中,V$AUDITRECORDS 是專門用來存儲和查詢數據庫審計記錄的重要系統視圖。這個視圖提供了對所有審計事件的訪問權限,包括操作類型、操作用戶、時間戳、目標對象等信…

詳解 | 什么是GeoTrust

GeoTrust是一家全球知名的數字證書頒發機構(Certificate Authority,簡稱CA),專注于提供SSL/TLS證書和其他相關的網絡安全產品。 1、歷史背景: GeoTrust成立于2001年,最初作為一個獨立的公司運營。2006年&a…

js+spring boot實現簡單前后端文件下載功能

jsboot項目實現自定義下載 一、前端頁面 1、先導入axios的js包 2、注意axios響應的格式:result.data.真實的數據內容 3、這里請求的url就是你boot項目的getMapping的url,保持一致即可 4、如果想在后端設置文件名,那么后端生成后&#xf…

目標檢測算法介紹來了!

隨著人工智能技術的迅猛發展,目標檢測算法在計算機視覺領域扮演著越來越重要的角色。它廣泛應用于安防監控、自動駕駛、醫學影像分析、機器人視覺等多個領域,極大地推動了智能化進程。本文將對目標檢測算法進行深入的探討,包括其基本原理、發…

使用 Streamlit 和 asyncio 模塊進行異步編程

概述 Streamlit 是一個用于構建數據應用程序的強大工具,但它本身并不直接支持異步編程。然而,通過結合 Python 的 asyncio 模塊,我們可以在 Streamlit 應用中實現異步處理,從而提高應用的響應性和效率。 為什么需要異步編程 在…

安卓應用開發學習:騰訊地圖SDK應用改進,實現定位、搜索、路線規劃功能集成

一、引言 我的上一篇學習日志《安卓應用開發學習:通過騰訊地圖SDK實現定位功能》記錄了利用騰訊地圖SDK實現手機定位功能,并能獲取地圖中心點的經緯度信息。這之后的幾天里,我對《Android App 開發進階與項目實戰》一書第九章的內容深入解讀…

【深度學習實戰(44)】Anchor based and Anchor free(無錨VS有錨)

1 anchor-based 深度學習目標檢測通常都被建模成對一些候選區域進行分類和回歸的問題。在單階段檢測器中,這些候選區域就是通過滑窗方式產生的 anchor;在兩階段檢測器中,候選區域是 RPN 生成的 proposal,但是 RPN 本身仍然是對滑窗…

leetcode--層數最深葉子節點的和

leetcode地址:層數最深葉子節點的和 給你一棵二叉樹的根節點 root ,請你返回 層數最深的葉子節點的和 。 示例 1: 輸入:root [1,2,3,4,5,null,6,7,null,null,null,null,8] 輸出:15 示例 2: 輸入&#xff…

多點GRE over IPsecVPN模式下nhrp的調優

一、實驗目的 在多點GRE over IPsecVPN模式下對nhrp進行調優,在總部開啟重定向、在分支開啟shortcut 網絡拓撲: 二、基礎設置 (一)如圖所示配置接口地址和區域,連接PC的接口位于trust區域、連接路由器的接口位于unt…

qt5.15關于qradiobutton遇到的坑

前言 不知道是只有我遇到了,還是qt本身就存在這個bug 當將2個qradiobutton放入到一個布局內,然后進行來回切換,若無數據刷新的情況下,切換無異常,當窗體內有數據開始刷新了,則點擊其中一個qradiobutton&am…

語法糖:代碼中的甜品

人不走空 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 目錄 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌…