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

数据结构与算法学习日志15

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
    • 先序遍历二叉树(迭代方法)
    • 中序遍历二叉树(迭代方法)
    • 后序遍历二叉树(迭代方法)
    • 二叉树层序遍历
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

哈喽各位晚上好呀,又到了日常汇报学习进度的时候。今天专攻二叉树遍历的迭代写法,把先序、中序、后序和层序遍历整理一遍,闲言少叙直接进入正题。


提示:以下是本篇文章正文内容,下面案例可供参考

先序遍历二叉树(迭代方法)

// 先序遍历迭代方法voidfun(TreeNode*p){if(p==nullptr)return;stack<TreeNode*>stk;stk.push(p);while(!stk.empty()){TreeNode*cur=stk.top();stk.pop();cout<<cur->val;//栈是先进后出因此先压右节点再压左节点if(cur->right)stk.push(cur->right);if(cur->left)stk.push(cur->left);}}

中序遍历二叉树(迭代方法)

//中序遍历voidfun1(TreeNode*p){if(p==nullptr)return;stack<TreeNode*>stk;TreeNode*cur=p;//如果条件只有栈不为空的话无法访问到根节点的右子树 因为当根节点输出时栈刚好为空while(cur||!stk.empty()){//一直走到左节点为空while(cur!=nullptr){stk.push(cur);cur=cur->left;}//弹出栈顶元素cur=stk.top();cout<<cur->val<<' ';stk.pop();//转向右节点cur=cur->right;}}

后序遍历二叉树(迭代方法)

//后序遍历//在先序遍历的基础上调换左右的顺序 最后反转整个数组vector<int>fun2(TreeNode*p){if(p==nullptr)return{};vector<int>ans;stack<TreeNode*>stk;stk.push(p);while(!stk.empty()){TreeNode*cur=stk.top();stk.pop();ans.push_back(cur->val);if(cur->left)stk.push(cur->left);if(cur->right)stk.push(cur->right);}reverse(ans.begin(),ans.end());returnans;}

二叉树层序遍历

voidLeveOrder(TreeNode*root){if(root==nullptr)return;TreeNode*p=root;queue<TreeNode*>que;que.push(p);while(!que.empty()){//计算每一层的元素个数intsize=que.size();for(inti=0;i<size;i++){TreeNode*cur=que.front();que.pop();cout<<cur->val<<' ';//弹出一个元素的同时压入它的左右子节点if(cur->left)que.push(cur->left);if(cur->right)que.push(cur->right);}cout<<endl;}}

总结

以上就是二叉树几种经典遍历的迭代实现了,栈和队列的用法还是得多刷题巩固。知识越学越觉得要多复盘,感谢各位阅读,我们明天见!

http://www.jsqmd.com/news/770888/

相关文章:

  • 面试官最爱问的Java多线程问题,你掌握了吗?
  • 模拟CMOS与系统论
  • 2026西北建筑拆除与加固优选指南:专业靠谱实力企业推荐 - 深度智识库
  • Mobvibe:基于ACP协议的跨设备AI编程伴侣部署与实战
  • 如何用GetQzonehistory一键备份QQ空间历史说说,让青春回忆永不丢失
  • 2026年海口财税记账口碑评测排行,八家5A代办机构优选 - 品牌智鉴榜
  • 从一行配置看Linux安全基石:PAM机制深度解析与/etc/pam.d/su实战
  • 光伏运维工具推荐
  • Cursor AI编辑器版本管理实战:从下载到配置的完整指南
  • 2026宁夏定制婚纱照TOP10!银川等地摄影工作室口碑出众受好评 - 十大品牌榜
  • 2026 常州奢侈品回收哪家靠谱|黄金包手表钻石首饰回收行情表,实体门店全测评 - 博客湾
  • 告别卡顿!手把手教你为Nvidia/AMD显卡在麒麟Kylin系统上安装正确驱动(附无线/蓝牙驱动修复)
  • AI4J:面向Java 8+的AI Agentic SDK,一站式集成大模型与智能体开发
  • 2026年第二季度电子拉力试验机选型指南:为何济南恒科试验设备有限公司成为首选 - 2026年企业推荐榜
  • 2026年4月比较好的顶管生产厂家推荐,DN1400企口管/承插口水泥管/检查井/3米水泥管/市政阀门井,顶管公司推荐 - 品牌推荐师
  • Python开发与数据科学的完美结合
  • 2026年贵阳全屋整装一站式方案深度指南:从毛坯到拎包入住的透明整装闭环 - 年度推荐企业名录
  • 从游戏地图到算法:用‘AB路线’这道题,5分钟讲透分层图BFS的建模思想
  • CentOS7上InfluxDB2保姆级安装与初始化配置(避坑指南)
  • 手把手教你:在银河麒麟V10 SP1恢复模式下,5分钟搞定忘记密码的尴尬
  • 从零部署Telegram自动文件过滤机器人:Lucy机器人核心功能与部署实战
  • 武汉京驰巨隆广告:武汉门头招牌安装公司 - LYL仔仔
  • LSBible SDK:结构化圣经数据获取与AI集成的开发实践
  • 行业联盟建设进入“AISMM临界点”:错过这6个月,将丧失标准主导权与数据主权
  • 深圳宇亿再生资源回收:罗湖区发电机注塑机回收推荐几家 - LYL仔仔
  • 2026年贵阳全屋整装一站式定制服务避坑指南 - 年度推荐企业名录
  • EB Garamond 12:专业级开源复古字体深度解析与高级应用指南
  • MegSpot跨平台图片视频对比工具架构深度解析与实战指南
  • 杭州银鑫物资回收:拱墅制冷设备回收哪家好 - LYL仔仔
  • Micrometer | 基础 - [直方图 百分位]