国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

門戶網(wǎng)站解決方案蘇州seo建站

門戶網(wǎng)站解決方案,蘇州seo建站,貴州省住房和城鄉(xiāng)建設(shè)廳證件查詢,尚硅谷前端培訓(xùn)多少錢前言:二叉樹的實現(xiàn)方式多種多樣,有數(shù)組實現(xiàn)滿二叉樹,有鏈表實現(xiàn)完全二叉樹,今天我們就用隊列來實現(xiàn)二叉樹。 創(chuàng)建二叉樹: typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTre…

前言:二叉樹的實現(xiàn)方式多種多樣,有數(shù)組實現(xiàn)滿二叉樹,有鏈表實現(xiàn)完全二叉樹,今天我們就用隊列來實現(xiàn)二叉樹。

在這里插入圖片描述

創(chuàng)建二叉樹:

typedef int BTDataType;
typedef struct BinaryTreeNode
{BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right;
}TreeNode;

層序遍歷:

void LevelOrder(TreeNode* root)
{Queue q;QueueInit(&q);if (root)QueuePush(&q, root);int levelSize = 1;while (!QueueEmpty(&q)){// 一層一層出while (levelSize--){TreeNode* front = QueueFront(&q);QueuePop(&q);printf("%d ", front->data);if (front->left)QueuePush(&q, front->left);if (front->right)QueuePush(&q, front->right);}printf("\n");levelSize = QueueSize(&q);}printf("\n");QueueDestroy(&q);
}

我們的隊列是用來存放二叉樹節(jié)點的,所以我們的目的是將節(jié)點一層一層的遍歷出來,所以我們的第一層是根節(jié)點,我們把它放入隊列,出隊列的時候就要帶它的左子樹和右子樹節(jié)點進入隊列,那么我們怎么知道每層的節(jié)點數(shù)呢?我們定義一個levelSize,初始值為1。
在這里插入圖片描述
我們的levelSize是每層的節(jié)點個數(shù),我們的節(jié)點個數(shù)因為在隊列中,所以我們的個數(shù)就等于隊列的數(shù)據(jù)個數(shù),即levelSize = QueueSize(&q),我們通過循環(huán)讓節(jié)點一層一層的出隊列打印出來就達(dá)到了我們的目的。整個過程如下圖所示:
在這里插入圖片描述

判斷二叉樹是否是完全二叉樹:

bool TreeComplete(TreeNode* root)
{Queue q;QueueInit(&q);if (root)QueuePush(&q, root);int levelSize = 1;while (!QueueEmpty(&q)){TreeNode* front = QueueFront(&q);QueuePop(&q);if (front == NULL)break;QueuePush(&q, front->left);QueuePush(&q, front->right);}// 前面遇到空以后,后面還有非空就不是完全二叉樹while (!QueueEmpty(&q)){TreeNode* front = QueueFront(&q);QueuePop(&q);if (front){QueueDestroy(&q);return false;}}QueueDestroy(&q);return true;
}

我們這里同樣按照節(jié)點的順序給它入隊列和出隊列,我們的levelSize控制每一層的數(shù)據(jù),我們的根節(jié)點出隊列就將它的左子樹和右子樹帶入隊列,如果中間有一個子樹為空那么就退出循環(huán),但是我們后面如果還有不為空的節(jié)點,也就是不連續(xù)的話,那么就不是完全二叉樹。
在這里插入圖片描述
我們拿到2的左子樹3后,出隊列,再拿2的右子樹,2的右子樹為空所以就結(jié)束循環(huán),我們在到隊列里面取隊列首元素,再出隊列,隊列的元素不為空,說明二叉樹不連續(xù),所以該樹就不是,完全二叉樹,反之就是完全二叉樹。

如果對大家有幫助的話就支持一下吧!感謝大家的支持!

http://m.aloenet.com.cn/news/39999.html

相關(guān)文章:

  • 臨淄網(wǎng)站建設(shè)公司網(wǎng)站推廣搜索
  • 麗江網(wǎng)站建設(shè)怎么自己創(chuàng)建一個網(wǎng)站
  • ppt做視頻 模板下載網(wǎng)站營銷方式和渠道
  • 重慶網(wǎng)站建設(shè)合肥公司網(wǎng)站怎么宣傳
  • 做界面網(wǎng)站用什么語言seo教程
  • 青海住房與建設(shè)廳網(wǎng)站廣東網(wǎng)約車漲價
  • 用dw做淘客網(wǎng)站的步驟南京百度推廣開戶
  • 工控做網(wǎng)站網(wǎng)站免費軟件
  • 做企業(yè)網(wǎng)站注意些啥百度指數(shù)數(shù)據(jù)分析平臺官網(wǎng)
  • 專門做圖片的網(wǎng)站有哪些今日軍事新聞
  • 網(wǎng)站建設(shè)銷售實習(xí)服務(wù)營銷策劃方案
  • php網(wǎng)站微信支付怎么做黃頁引流推廣網(wǎng)站
  • 網(wǎng)站圖片計時器怎么做國內(nèi)時事新聞
  • 網(wǎng)站建設(shè)昆明色盲
  • 怎么查看網(wǎng)站的友情鏈接外鏈發(fā)布工具
  • 哪家做網(wǎng)站公司好搜索大全引擎地址
  • 免費視頻網(wǎng)站制作愛上鏈外鏈購買平臺
  • 網(wǎng)站建設(shè)與維護模擬一新聞頭條免費下載安裝
  • 返利網(wǎng)站程序產(chǎn)品推廣
  • 北京網(wǎng)站制作西安西安網(wǎng)紅
  • 做網(wǎng)站和web前端一樣嗎百度seo優(yōu)化招聘
  • 成都網(wǎng)站建設(shè)贏展成都網(wǎng)站建設(shè)方案推廣
  • 網(wǎng)站建設(shè)預(yù)付款比例惠州網(wǎng)絡(luò)營銷
  • 成都廣告公司網(wǎng)站建設(shè)瑞金網(wǎng)絡(luò)推廣
  • 邯鄲網(wǎng)站建設(shè)公司群站優(yōu)化之鏈輪模式
  • 企業(yè)商務(wù)網(wǎng)站建設(shè)策劃書查詢域名注冊信息
  • 17網(wǎng)站一起做網(wǎng)店揭陽seo合作
  • wordpress自定義登陸頁面天津seo方案
  • 用表格做網(wǎng)站廊坊首頁霸屏優(yōu)化
  • 網(wǎng)站建設(shè)要求百度指數(shù)疫情