-
C#教程之二叉树遍历(2)
本站最新发布 C#从入门到精通
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
public void PostOrderTraversalWithoutRecusion2(Action<BinaryTree<T>, int> action) { Stack<NodeWrapper> stack = new Stack<NodeWrapper>(); NodeWrapper wrapper = new NodeWrapper(this, false); stack.Push(wrapper); while (stack.Count > 0) { wrapper = stack.Pop(); if (wrapper.Node.Left != null && !wrapper.FromLeft) { stack.Push(wrapper); stack.Push(new NodeWrapper(wrapper.Node.Left, false)); } else { if(stack.Count > 0) stack.Peek().FromLeft = true; if (wrapper.Node.Right != null && !wrapper.FromRight) { wrapper.FromRight = true; stack.Push(wrapper); stack.Push(new NodeWrapper(wrapper.Node.Right, false)); } else action(wrapper.Node, 1); } } }
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
public void PostOrderTraversalWithoutRecusion2(Action<BinaryTree<T>, int> action) { Stack<NodeWrapper> stack = new Stack<NodeWrapper>(); NodeWrapper wrapper = new NodeWrapper(this, false); stack.Push(wrapper); while (stack.Count > 0) { wrapper = stack.Pop(); if (wrapper.Node.Left != null && !wrapper.FromLeft) { stack.Push(wrapper); stack.Push(new NodeWrapper(wrapper.Node.Left, false)); } else { if(stack.Count > 0) stack.Peek().FromLeft = true; if (wrapper.Node.Right != null && !wrapper.FromRight) { wrapper.FromRight = true; stack.Push(wrapper); stack.Push(new NodeWrapper(wrapper.Node.Right, false)); } else action(wrapper.Node, 1); } } }
测试代码类似非递归版本, 这里为了节省篇幅就不贴了;
栏目列表
最新更新
Python 中如何实现参数化测试?
Appium移动端测试--基础预热
自定义404页面
python redis模块详解
python爬虫--图片懒加载
Python抓取豆瓣电影top250!
Tornado—添加请求头允许跨域请求访问
pycharm设置开发模板/字体大小/背景颜色(
python爬虫公众号所有信息,并批量下载公
docker系列之一:初见docker
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能
将Session值储存于SQL Server中