日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > [經典面試題]二叉樹寬度

[經典面試題]二叉樹寬度

來源:程序員人生   發布時間:2015-03-09 09:12:58 閱讀次數:2790次

(1)2叉樹最大寬度

/*--------------------------------------------- * 日期:2015-03-07 * 作者:SJF0115 * 題目: 2叉樹的最大寬度 * 來源:經典面試題 * 博客: -----------------------------------------------*/ #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叉樹的最大寬度 int MaxWidthBinaryTree(TreeNode *root){ if(root == NULL){ return 0; }//if // 當前層 queue<TreeNode*> curLevel; // 下1層 queue<TreeNode*> nextLevel; // 最大寬度 int max = 0; // 當前層寬度 int width = 0; // 加入隊列 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(); // 左子樹 if(node->left != NULL){ nextLevel.push(node->left); }//if // 右子樹 if(node->right != NULL){ nextLevel.push(node->right); }//if }//while swap(curLevel,nextLevel); }//while return max; } //按先序序列創建2叉樹 int CreateBTree(TreeNode*& T){ int data; //按先序次序輸入2叉樹中結點的值,⑴表示空樹 cin>>data; if(data == -1){ T = NULL; } else{ T = new TreeNode(data); //構造左子樹 CreateBTree(T->left); //構造右子樹 CreateBTree(T->right); } return 0; } int main() { TreeNode *root = NULL; CreateBTree(root); int result = MaxWidthBinaryTree(root); cout<<result<<endl; return 0; }

(2)2叉樹各層寬度

/*--------------------------------------------- * 日期:2015-03-07 * 作者:SJF0115 * 題目: 2叉樹的最大寬度 * 來源:經典面試題 * 博客: -----------------------------------------------*/ #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叉樹寬度 vector<int> WidthBinaryTree(TreeNode *root){ vector<int> level; if(root == NULL){ return level; }//if // 當前層 queue<TreeNode*> curLevel; // 下1層 queue<TreeNode*> nextLevel; // 當前層寬度 int width = 0; // 加入隊列 curLevel.push(root); TreeNode *node; while(!curLevel.empty()){ width = 0; while(!curLevel.empty()){ ++width; node = curLevel.front(); curLevel.pop(); // 左子樹 if(node->left != NULL){ nextLevel.push(node->left); }//if // 右子樹 if(node->right != NULL){ nextLevel.push(node->right); }//if }//while level.push_back(width); swap(curLevel,nextLevel); }//while return level; } //按先序序列創建2叉樹 int CreateBTree(TreeNode*& T){ int data; //按先序次序輸入2叉樹中結點的值,⑴表示空樹 cin>>data; if(data == -1){ T = NULL; } else{ T = new TreeNode(data); //構造左子樹 CreateBTree(T->left); //構造右子樹 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]<<"個節點"<<endl; }//for return 0; }

這里寫圖片描述

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久精品久久综合 | 在线色综合| av中文字幕av | 国产污视频在线 | 精品欧美一区二区在线观看 | 色综合999| 欧美日韩在线综合 | 精品国产乱码久久久久久图片 | 亚洲欧洲日产v特级毛片 | 成人99| 国产一区二区精品久久 | 成人精品国产免费网站 | 久久精品亚洲一区 | 久久国产精品一区二区 | 久久国产精品久久久久久久久久 | www.国产在线观看 | 亚洲精品乱码久久久久久金桔影视 | 黄色片网站 | 一区二区三区中文字幕 | 岛国av免费看 | 成人免费毛片高清视频 | 国产伦精品一区二区三区精品视频 | 中文字幕+乱码+中文乱码图片 | 日韩操比| 欧美精品中文字幕久久二区 | 国产午夜亚洲精品理论片色戒 | 日本中文在线观看 | 在线免费国产视频 | 亚洲小视频 | 99热精品在线观看 | 欧美激情视频一区二区三区在线播放 | 中文字幕一区二区三区在线视频 | 99久久精品一区二区成人 | 久久人人97超碰精品888 | 午夜精品福利视频 | 中文字幕日韩欧美 | 欧美 日韩 国产 在线 | 亚洲一区精品视频 | 亚洲欧美另类久久久精品2019 | 99久久精品国产麻豆演员表 | 男女福利视频 |