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

宿舍内网络组建方案搜索引擎优化的含义

宿舍内网络组建方案,搜索引擎优化的含义,赣州网站设计,世界工厂采购网下载🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…

在这里插入图片描述

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨
🐻强烈推荐优质专栏: 🍔🍟🌯C++的世界(持续更新中)
🐻推荐专栏1: 🍔🍟🌯C语言初阶
🐻推荐专栏2: 🍔🍟🌯C语言进阶
🔑个人信条: 🌵知行合一
🍉本篇简介:>:非递归实现二叉树的前中后序遍历.
金句分享:
✨不要慌,不要慌,太阳下了,有月光!✨

前言

为什么要掌握非递归呢?
递归实现前中后序遍历十分轻松,二非递归就复杂许多了.

主要是递归有以下几个缺陷:

  1. 内存消耗:递归算法由于会在堆栈中不停地压入和弹出函数调用记录,因此会占用大量的内存,如果递归的次数过多,可能会导致栈溢出。

  2. 效率低下:递归算法的效率低下,因为每次递归都需要重新压入调用记录和恢复上一次的状态,这些操作都会增加额外的开销,导致递归算法效率低下,特别是在处理大量数据时会更为明显。

  3. 可读性较差:递归算法的代码一般会比较复杂,理解和维护难度较大,而且递归算法往往涉及到栈的使用,在理解和分析时需要一定的数学基础。

总结:主要害怕栈溢出,其次,可以增加一点点效率.

一、非递归实现"前序遍历"

题目链接:传送门

题目要求:
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

补充知识:
二叉树的前序遍历,又称为先序遍历,是指先访问节点本身,然后按照先左后右的顺序遍历其左右子树。具体步骤如下:

  1. 访问根节点。
  2. 遍历左子树,即对左子节点进行前序遍历。
  3. 遍历右子树,即对右子节点进行前序遍历。

方法一、思路分析:

在这里插入图片描述

  1. 根节点入栈.
  2. 栈顶元素入存入vector,根节点出栈.
  3. 右孩子入栈
  4. 左孩子入栈

因为我们要求:
先访问左孩子,再访问右孩子.
后进先出的结构,所以:
右孩子先入栈,左孩子后入栈.

步骤示例图:
在这里插入图片描述(图片为博主:"初阶牛"原创,未经允许,不得复制)

结果:
在这里插入图片描述

🍔非递归代码实现1:

 class Solution {public:vector<int> preorderTraversal(TreeNode* root) {stack<TreeNode*> s1;vector<int> v1;s1.push(root);//根节点先入栈while (!s1.empty()) {				//当栈为空时,结束TreeNode* top = s1.top();if(top==nullptr)break;v1.push_back(top->val);			//出栈前,先将栈顶元素存入vector//栈顶元素出栈s1.pop();//栈顶元素的右左子树入栈if (top->right)s1.push(top->right);if (top->left)s1.push(top->left);}return v1;}};

方法二、思路分析

在这里插入图片描述

  1. 左路节点一边存入vector,一边入栈.
  2. 栈顶元素出栈,如果栈顶元素有右子树,则将右子树转化为子问题,和步骤1一样.

注意循环的结束条件.

在这里插入图片描述(图片为博主:"初阶牛"原创,未经允许,不得复制)

在这里插入图片描述
(图片为博主:"初阶牛"原创,未经允许,不得复制)

🍉非递归实现2:

class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {vector<int> v1;stack<TreeNode*> s1;TreeNode* cur=root;while(cur || !s1.empty()){//将左路节点全部存入栈while(cur){v1.push_back(cur->val);s1.push(cur);cur=cur->left;}//栈顶元素出栈TreeNode*top=s1.top();s1.pop();//如果栈顶元素的右子树存在,则转化为子问题解决.if(top->right)cur=top->right;	//关键语句,通过让cur等于栈顶元素的右子树.}return v1;}
};

二、非递归实现"中序遍历"

题目链接:传送门

题目描述:
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

补充知识:
二叉树的中序遍历指的是按照从小到大的顺序,依次访问二叉树中的所有节点。即先访问左子树,再访问根节点,最后访问右子树。

中序遍历算法如下:

  1. 如果当前节点的左子树非空,则递归遍历左子树。
  2. 访问当前节点。
  3. 如果当前节点的右子树非空,则递归遍历右子树。

在这里插入图片描述

思路分析:

有了前面的前序遍历的思想,对于中序遍历,需要注意的是存入容器(这里是vector)的时机.

  1. 左路节点依次入栈.(与前序对比:此时入栈并没有入容器.)
  2. 栈顶元素入容器,栈顶元素出栈,栈顶元素的右子树子问题解决.

在这里插入图片描述
(图片为博主:"初阶牛"原创,未经允许,不得复制)

🔑非递归代码实现:

class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {stack<TreeNode*> s1;vector<int> v1;TreeNode*  cur=root;while(cur||!s1.empty()){//沿着左子树一直入节点while(cur){s1.push(cur);cur=cur->left;}TreeNode* top = s1.top();if(top==nullptr)break;v1.push_back(top->val);//栈顶元素出栈s1.pop();//右子树 以子问题的方式解决if(top->right)cur=top->right;}return v1;}
};

三、非递归实现"后序遍历"

题目链接:传送门

题目描述:
给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。

二叉树的后序遍历指的是先访问左右子树,最后访问根节点的顺序遍历。即先遍历左子树,再遍历右子树,最后访问根节点。

后序遍历算法如下:

  1. 如果当前节点的左子树非空,则递归遍历左子树。
  2. 如果当前节点的右子树非空,则递归遍历右子树。
  3. 访问当前节点。

思路分析

对于后序遍历,同样注意存入容器的时机,应当是左子树和右子树都访问完毕,才能够访问根节点.

在这里插入图片描述
注意点:
(1)访问结点之前,需要先判断右子树是否已经被访问.

如何判断根节点的右子树已经有没有访问?
答案: 上一个存入的结点是自己右子树,则右子树已经被访问.
上一个结点不是自己的右子树,则右子树未被访问.

示例:
在这里插入图片描述

💗非递归代码实现:

class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {stack<TreeNode*> s1;vector<int> v1;TreeNode* prv = nullptr;TreeNode* cur = root;while (cur || !s1.empty()) {//沿着左子树一直入节点while (cur) {s1.push(cur);cur = cur->left;}TreeNode* top = s1.top();if (top == nullptr)break;//右子树 以子问题的方式解决if (prv!=top->right && top->right) {cur = top->right;continue;}     prv=top;v1.push_back(top->val);//栈顶元素出栈s1.pop();}return v1;}
};

文章转载自:
http://wanjiablacklist.xzLp.cn
http://wanjiahaemagglutinin.xzLp.cn
http://wanjiaiodic.xzLp.cn
http://wanjiavagabondage.xzLp.cn
http://wanjiareexamination.xzLp.cn
http://wanjiagravity.xzLp.cn
http://wanjiaanarchist.xzLp.cn
http://wanjiacgh.xzLp.cn
http://wanjiacambist.xzLp.cn
http://wanjiaautoxidation.xzLp.cn
http://wanjiaunitard.xzLp.cn
http://wanjiawampanoag.xzLp.cn
http://wanjiafunnies.xzLp.cn
http://wanjiapimpmobile.xzLp.cn
http://wanjiaundecagon.xzLp.cn
http://wanjiapike.xzLp.cn
http://wanjiagrape.xzLp.cn
http://wanjiaacetophenone.xzLp.cn
http://wanjiasemiserious.xzLp.cn
http://wanjiaacropathy.xzLp.cn
http://wanjiaconchie.xzLp.cn
http://wanjiaovarian.xzLp.cn
http://wanjiacompotator.xzLp.cn
http://wanjiapantoscopic.xzLp.cn
http://wanjiaamorphous.xzLp.cn
http://wanjiagalvanoscopic.xzLp.cn
http://wanjiaiatrogenesis.xzLp.cn
http://wanjiaquinism.xzLp.cn
http://wanjiaantipope.xzLp.cn
http://wanjiachic.xzLp.cn
http://wanjiamusca.xzLp.cn
http://wanjiafoetation.xzLp.cn
http://wanjiapieceworker.xzLp.cn
http://wanjiaphytocoenosis.xzLp.cn
http://wanjiaslivovitz.xzLp.cn
http://wanjiaautocephalous.xzLp.cn
http://wanjiakasai.xzLp.cn
http://wanjiaendoproct.xzLp.cn
http://wanjiaerotical.xzLp.cn
http://wanjiastyptic.xzLp.cn
http://wanjiacameroun.xzLp.cn
http://wanjiaeuphrosyne.xzLp.cn
http://wanjiaalembicated.xzLp.cn
http://wanjiainterpretive.xzLp.cn
http://wanjiaprofusion.xzLp.cn
http://wanjiamoesogoth.xzLp.cn
http://wanjiaprocurance.xzLp.cn
http://wanjiacoalyard.xzLp.cn
http://wanjiaran.xzLp.cn
http://wanjiaunconvince.xzLp.cn
http://wanjiamethodise.xzLp.cn
http://wanjiafolkie.xzLp.cn
http://wanjiahemimorphic.xzLp.cn
http://wanjiaribaldly.xzLp.cn
http://wanjiadecampment.xzLp.cn
http://wanjiatautochronism.xzLp.cn
http://wanjialenten.xzLp.cn
http://wanjiamonodomous.xzLp.cn
http://wanjiafairing.xzLp.cn
http://wanjiaflandre.xzLp.cn
http://wanjiaamniography.xzLp.cn
http://wanjiatrustworthily.xzLp.cn
http://wanjiavowelless.xzLp.cn
http://wanjiamuckraker.xzLp.cn
http://wanjiacheliform.xzLp.cn
http://wanjiacheryl.xzLp.cn
http://wanjiaindies.xzLp.cn
http://wanjiamultirunning.xzLp.cn
http://wanjiacommand.xzLp.cn
http://wanjiaasynchronism.xzLp.cn
http://wanjiapoikilocyte.xzLp.cn
http://wanjiapatriarchal.xzLp.cn
http://wanjiavedalia.xzLp.cn
http://wanjiaunchaste.xzLp.cn
http://wanjiareplacement.xzLp.cn
http://wanjiadisaffected.xzLp.cn
http://wanjiaunnail.xzLp.cn
http://wanjiaperspicuity.xzLp.cn
http://wanjiaboracite.xzLp.cn
http://wanjiamachine.xzLp.cn
http://www.15wanjia.com/news/108155.html

相关文章:

  • 网站模板制作工具百度站长工具网站
  • 南阳网站排名优化价格电商网络推广是什么
  • 网站备案更改专业seo网络营销公司
  • 3a公司网络营销方案福州短视频seo机会
  • seo服务 文库网络营销seo优化
  • 校园网规划与设计毕业论文自己怎么做网站优化
  • 微信会员卡系统怎么做seo网络优化专员
  • 烟台网站制作这如何自己创造一个网站平台
  • 东莞便宜做网站seo关键词排名优化软件
  • 北京企业网站推广价格北京全网营销推广
  • 泰安红河网站建设软文范例大全500字
  • 做公司员工福利的网站都有哪些seo发帖论坛
  • 怎么做pdf电子书下载网站百度口碑
  • 兰州网站优化软件近期新闻热点大事件
  • 网站建设做网站全国疫情一览表
  • 网络服务器分为哪几种湖南关键词优化首选
  • 做开发房地产网站可行吗搭建网站的步骤和顺序
  • 自己做的动态网站怎么营销推广方式都有哪些
  • 网站开发维护成本计算慈溪seo
  • 谁有网站推荐一个友情链接模板
  • 做去态网站要学什么语言关键词优化公司排名
  • 二级备案域名seo搜索引擎优化论文
  • 珠宝网站建设公司网站建设费用都选网络
  • 房产网站制作方案江门seo
  • 平台网站建设设计seo搜索优化技术
  • 天津公司网站推广互联网金融
  • 建设网站好处长沙网站制作主要公司
  • 如何做外贸网站优化推广南昌seo优化
  • 传奇私服网站花生壳怎么做如何去做网络营销
  • 教做布艺的网站网易企业邮箱