多叉树的递归和非递归遍历
2016-04-13 21:01
302 查看
转自:这里
有趣的是,递归遍历里出现了
循环里有递归
的现象,而这在集合求子集,字符串求字符串的算法里也经常出现。
递归方法
void travel(Node *pNode) { if (pNode == Null) { return; } Deal(pNode); for (int i=0 ;i<pNode->child_list.size(); i++) { Node *tmp = pNode->child_list[i]; travel(tmp); } }
非递归方法
void travel(Node *pNode) { stack stack; stack.push(pNode); Node *lpNode; while(!stack.empty()) { lpNode = stack.top(); stack.pop(); Deal(lpNode); for (int i=0 ;i<pNode->child_list.size(); i++) { stack.push(pNode->child_lis[i]); } } }
有趣的是,递归遍历里出现了
循环里有递归
的现象,而这在集合求子集,字符串求字符串的算法里也经常出现。
相关文章推荐
- Redis+linux自定义池化(三)
- Java 多线程锁机制
- 屏蔽Home键
- 单链表
- 《linux高性能服务器编程》学习笔记(一)
- 修改linux 文件权限命令 chmod
- leetcode之Contains Duplicate II
- Linux Is Not Matrix——zabbix监控JBoss
- Sequence one
- Sequence one
- Disconf部署安装
- C++ 之 去重函数
- 《C++编程规范:101条规则、准则与最佳实践》
- c++运算符重载
- 两条命令搞定安装UBUNTU后找不到windows启动项问题
- hibernate(1)
- python 经典博客链接
- 转 -- Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
- 排序问题-堆排序
- Android 70道面试题汇总不再愁面试