多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > php教程 > [經(jīng)典面試題]二叉樹(shù)寬度

[經(jīng)典面試題]二叉樹(shù)寬度

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-03-09 09:12:58 閱讀次數(shù):2783次

(1)2叉樹(shù)最大寬度

/*--------------------------------------------- * 日期:2015-03-07 * 作者:SJF0115 * 題目: 2叉樹(shù)的最大寬度 * 來(lái)源:經(jīng)典面試題 * 博客: -----------------------------------------------*/ #include <iostream> #include <queue> using namespace std; struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x):val(x),left(NULL),right(NULL){} }; // 2叉樹(shù)的最大寬度 int MaxWidthBinaryTree(TreeNode *root){ if(root == NULL){ return 0; }//if // 當(dāng)前層 queue<TreeNode*> curLevel; // 下1層 queue<TreeNode*> nextLevel; // 最大寬度 int max = 0; // 當(dāng)前層寬度 int width = 0; // 加入隊(duì)列 curLevel.push(root); TreeNode *node; while(!curLevel.empty()){ width = 0; while(!curLevel.empty()){ ++width; if(width > max){ max = width; }//if node = curLevel.front(); curLevel.pop(); // 左子樹(shù) if(node->left != NULL){ nextLevel.push(node->left); }//if // 右子樹(shù) if(node->right != NULL){ nextLevel.push(node->right); }//if }//while swap(curLevel,nextLevel); }//while return max; } //按先序序列創(chuàng)建2叉樹(shù) int CreateBTree(TreeNode*& T){ int data; //按先序次序輸入2叉樹(shù)中結(jié)點(diǎn)的值,⑴表示空樹(shù) cin>>data; if(data == -1){ T = NULL; } else{ T = new TreeNode(data); //構(gòu)造左子樹(shù) CreateBTree(T->left); //構(gòu)造右子樹(shù) CreateBTree(T->right); } return 0; } int main() { TreeNode *root = NULL; CreateBTree(root); int result = MaxWidthBinaryTree(root); cout<<result<<endl; return 0; }

(2)2叉樹(shù)各層寬度

/*--------------------------------------------- * 日期:2015-03-07 * 作者:SJF0115 * 題目: 2叉樹(shù)的最大寬度 * 來(lái)源:經(jīng)典面試題 * 博客: -----------------------------------------------*/ #include <iostream> #include <queue> #include <vector> using namespace std; struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x):val(x),left(NULL),right(NULL){} }; // 2叉樹(shù)寬度 vector<int> WidthBinaryTree(TreeNode *root){ vector<int> level; if(root == NULL){ return level; }//if // 當(dāng)前層 queue<TreeNode*> curLevel; // 下1層 queue<TreeNode*> nextLevel; // 當(dāng)前層寬度 int width = 0; // 加入隊(duì)列 curLevel.push(root); TreeNode *node; while(!curLevel.empty()){ width = 0; while(!curLevel.empty()){ ++width; node = curLevel.front(); curLevel.pop(); // 左子樹(shù) if(node->left != NULL){ nextLevel.push(node->left); }//if // 右子樹(shù) if(node->right != NULL){ nextLevel.push(node->right); }//if }//while level.push_back(width); swap(curLevel,nextLevel); }//while return level; } //按先序序列創(chuàng)建2叉樹(shù) int CreateBTree(TreeNode*& T){ int data; //按先序次序輸入2叉樹(shù)中結(jié)點(diǎn)的值,⑴表示空樹(shù) cin>>data; if(data == -1){ T = NULL; } else{ T = new TreeNode(data); //構(gòu)造左子樹(shù) CreateBTree(T->left); //構(gòu)造右子樹(shù) CreateBTree(T->right); } return 0; } int main() { TreeNode *root = NULL; CreateBTree(root); vector<int> result = WidthBinaryTree(root); for(int i = 0;i < result.size();++i){ cout<<"第"<<i+1<<"層->"<<result[i]<<"個(gè)節(jié)點(diǎn)"<<endl; }//for return 0; }

這里寫圖片描述

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品高清国产a毛片 | 亚洲高清在线观看播放 | 91精品成人福利在线播放 | 尤物视频在线观看免费视频 | 亚洲一区二区三区四 | 欧美精18videosex性欧美 | 偷拍自拍校园春色 | 中文字幕日本一本二本三区 | 又粗又大又黄又爽的免费视频 | 成人在线视频网站 | 亚洲欧美日韩精品一区 | 性色xxx| 久久福利资源站免费观看i 久久高清一级毛片 | 亚洲最大的黄色网址 | 久久久久国产精品免费免费 | 国产一区二区三区亚洲综合 | 91福利国产在线观一区二区 | 欧美一级黄色片视频 | 午夜福免费福利在线观看 | 成年人精品视频 | 伊人久久综合成人网小说 | 乡下女色又黄一级毛片 | 亚州精品一区二区三区 | 欧美一区二区丝袜高跟鞋 | 自拍偷拍二区 | 国产精品久久久久久久久久久久久久 | 成人精品一区二区三区 | 亚洲欧美日韩综合久久久久 | 男女性高清爱潮视频免费观看 | 最近中文字幕无吗高清网 | 性8sex亚洲区入口 | 国产精品99久久久久久人 | 福利视频一二三在线视频免费观看 | 一二三四在线观看免费中文在线观看 | 成人国产在线24小时播放视频 | 网站午夜| 日韩精品在线一区二区 | 亚洲aⅴ在线 | 福利精品一区 | 欧美高清揄拍自拍视频网站 | 欧美1页|