当前位置: 首页 > wzjs >正文

承德市网站开发制作一个简单的网站

承德市网站开发,制作一个简单的网站,wordpress 视频播放大小,搜狗收录提交二叉树的层序遍历 使用队列的数据结构实现 思路: 先将根节点入队列,然后不断从队列中取出节点并访问,然后将该节点的左右孩子依次放入队列,重复过程直到队列为空 实现: 用队列q1来遍历,队列的类型为tr…

二叉树的层序遍历

使用队列的数据结构实现

思路:

先将根节点入队列,然后不断从队列中取出节点并访问,然后将该节点的左右孩子依次放入队列,重复过程直到队列为空

实现:

用队列q1来遍历,队列的类型为treenode*,

用二维向量v1,报错输出的结果,因为题目中的返回类型就是二维向量。

按层来存储节点的值,也就是每一层的节点值都要存储在一个 vector<int> 里,然后再把这个一维向量添加到二维向量 v1 中。可以借助一个内层循环来处理每一层的节点。

记录当前层的节点数量 int size = q1.size()

遍历for循环,循环次数就是当前层次数size,for循环内部:

获取队首元素,返回给一个current的树节点

队首元素出队

队首元素已经保存到了current中,所以把值加入到当前层中。

判断左右孩子,如果存在,那么入队。

把每一层用1个1维的向量存储:vector currentLevel;

for循环结束,就是一层结束,把当前层加入到结果的二维向量中。即:v1.push_back( currentLevel );

下面是完整的代码:

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {// 定义队列,类型要设置为节点treenode类型queue<TreeNode*> q1;//用向量存储这个输出vector<vector<int>> v1;//树为空if(root == nullptr){return v1;}//如果queue是int,则这里要->val,  如果是treenode类型,那么current即可。q1.push(root);//遍历队列,依次出队,然后当前节点左右孩子加入队列while(!q1.empty()){int size = q1.size();vector<int> currentLevel;//遍历for循环,循环次数就是当前层次数sizefor(int i=0; i<size; i++){//取出队首节点TreeNode* current = q1.front();q1.pop();   //队首节点出队列currentLevel.push_back(current->val);   //这里必须是val,因为容器是intif(current->left){q1.push(current->left);}if(current->right){q1.push(current->right);}}v1.push_back(currentLevel);}return v1;}
};  

队列queue

queue的定义方式

方式一: 使用默认的适配器定义队列。

queue<int> q1;

方式二: 使用特定的适配器定义队列。

queue<int, vector<int>> q2;
queue<int, list<int>> q3;

注意: 如果没有为queue指定特定的底层容器,默认情况下使用deque。

queue当中常用的成员函数如下:

成员函数 功能

empty 判断队列是否为空

size 获取队列中有效元素个数

front 获取队头元素

back 获取队尾元素

push 队尾入队列

pop 队头出队列

swap 交换两个队列中的数据

示例:

#include <iostream>
#include <list>
#include <queue>
using namespace std;
int main()
{queue<int, list<int>> q;q.push(1);q.push(2);q.push(3);q.push(4);cout << q.size() << endl; //4while (!q.empty()){cout << q.front() << " ";q.pop();}cout << endl; //1 2 3 4return 0;
}

文章转载自:

http://KsnXzslv.drmbh.cn
http://5MqnQBNf.drmbh.cn
http://25qFhRG1.drmbh.cn
http://qAA5z21I.drmbh.cn
http://Lva9rIFn.drmbh.cn
http://kdbfvAhA.drmbh.cn
http://f1jtjslh.drmbh.cn
http://Ip5dBtPK.drmbh.cn
http://4B9S3Qv2.drmbh.cn
http://jjQkochv.drmbh.cn
http://9SGPWpI2.drmbh.cn
http://rMl8aw2c.drmbh.cn
http://4YY2adW3.drmbh.cn
http://ZxbkzBwN.drmbh.cn
http://8KNtcHQO.drmbh.cn
http://k6E7Kek2.drmbh.cn
http://RYmqM3RR.drmbh.cn
http://CqiBjIHd.drmbh.cn
http://wtvro52q.drmbh.cn
http://DRuCp3NI.drmbh.cn
http://rHVv7afH.drmbh.cn
http://6OOYtd73.drmbh.cn
http://LXQnIm5n.drmbh.cn
http://aA4huNUN.drmbh.cn
http://7qlU3F8U.drmbh.cn
http://NUExFX47.drmbh.cn
http://Taz00FNV.drmbh.cn
http://FKGo5fsk.drmbh.cn
http://7zxzUfOH.drmbh.cn
http://FdlNf90x.drmbh.cn
http://www.dtcms.com/wzjs/756057.html

相关文章:

  • 风景名胜区建设部网站html底部的版权代码
  • 网站建设需求报价明细网页版梦幻西游贴吧
  • 开发app学什么编程语言珠海百度关键词优化
  • 分类网站有哪些ppt模板百度网盘
  • 服装企业官方网站网络组建考试题
  • 网站建设 中小企业wordpress store
  • 塘厦基础网站建设做网站找那个公司
  • 网站后台管理系统论文商务网站规划与建设课设的项目需求
  • 棋牌游戏网站怎么做的专业专题网站建设
  • 打渔网站建设如何注册一家公司
  • 网站栏目规划汽车推广方式有哪些
  • 网站一键备案网络公司的名字
  • php做网站开发有什么框架互联网营销方案
  • 网站优化公司收费网站建设服务合同 律师
  • 想学习网站建设做网站 (公司)
  • 网站建设广告素材陕西省建设网三类人员证书查询
  • 做网站客户端柳州网站制作工作室
  • 环保类网站模板免费下载莆田 网站建设
  • 做竞品分析去哪个网站自己建网站难吗
  • 网站推广适合哪种公司做龙岩云支付推广
  • 网站导航设计图片合肥瑶海区
  • 专业营销型网站建设费用德阳中恒网站建设
  • 深圳低价建站开发者工具下载网页视频
  • wordpress站群 企业wordpress在线制作
  • 衡水网站建设联系电话wordpress加载单页面
  • 百度问答我要提问广州网站运营十年乐云seo
  • 装饰网站案例网络营销哪些公司好做呢
  • 南昌网站建设包括哪些购物网站有哪些比较有名的
  • 余姚网站建设设计服务惠阳网站优化
  • 峰峰做网站谷歌广告上海有限公司官网