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

做电商卖玉器的网站HTML建网站

做电商卖玉器的网站,HTML建网站,google国外入口,360建网站好不好?一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…

一、题目解析

对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。

二、算法原理

递归调用本质是系统建立栈帧,而非递归则是用栈来存储数据,实现类似递归的效果。

首先,我们先简单了解一下递归调用时,是如何遍历的?

前序遍历,由根、左子树、右子树的顺序遍历,打印时直接打印根节点的值。

根据这个我们把它转换到非递归上,对于非递归遍历,左子树节点全部入栈,然后依次访问左子树节点的右子树,由于栈的特性保证后进先出,所以不用担心遍历出错,对于右子树的遍历同样如此,左子树进栈,然后访问右子树。

由此我们可以看出非递归本质上与递归没有多大差别。

三、代码示例

class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {stack<TreeNode*> st;TreeNode* cur = root;vector<int> v;while(cur || !st.empty()){//访问一棵树的开始//1.访问左路节点,左路节点入栈,后续依次访问左路节点的右子数while(cur){v.push_back(cur->val);st.push(cur);cur = cur->left;}//依次访问左路节点的右子树TreeNode* top = st.top();st.pop();//子问题的方式访问右子树cur = top->right;}return v;}
};

push是栈的入数据操作,top则是栈的获取栈顶元素操作,pop则是栈的删数据操作,push_back是vector的尾插操作

 

四、非递归遍历流程

 

 看到最后,如果对您有所帮助,还请点赞、收藏和关注,点点关注不迷路,我们下期再见!

 

http://www.dtcms.com/a/513972.html

相关文章:

  • 电影网站怎么做优化国内有类似wordpress
  • 如何学做网站外包天津建设工程招标网
  • 金华官方网站建设表白视频制作网站
  • 现在还有企业做网站吗常州网站支付通道建设
  • 如何用模版做网站深圳福田网站优化网络营销培训学校
  • 杭州网站建设费用多少app推广平台接单渠道
  • debian13安装PostgreSQL并远程连接
  • 做网站需要多大的内存潍坊建网站的
  • 网站建设应该考虑哪些问题汕头澄海玩具
  • 做装修的业务网站请稍后重试(3008)
  • 济南网站优化推广php网站开发总结文档
  • 用html做网站源代码东莞市国外网站建设报价
  • 网站建设交流平台如何制作自己的网站视频教程
  • 江门加盟网站建设德阳做网站
  • 网站建设商务通什么意思网站做sem推广时要注意什么意思
  • 买完域名后如何建设网站wordpress 客户端使用
  • 网站后台软件可以自己做吗全屋定制十大品牌排行榜前十名
  • phpcms网站建设做装修工程找什么网站接单
  • 高校门户网站建设本溪建设网站
  • 办公家具网站模板网站开发证书要求
  • 山东省建设厅招标网站首页网站开发的收入
  • 容桂网站制作咨询湛江h5建站
  • 深圳网站建设网网站建设 需求
  • 邢台seo网站制作如何跟进psd做网站
  • 网站专题报道页面怎么做的河南网站托管
  • 上海高端品牌网站建设专家优设网设计师导航
  • 如何免费申请网站白云网站建设公
  • 做网站必须有框架是吗品牌建设内涵
  • Prometheus 监控系统详解
  • 济南网站建设公司哪家好呼市做网站