之字形打印二叉树
来源:互联网 发布:美团大数据招聘 编辑:程序博客网 时间:2024/05/20 15:12
将一棵二叉树按“之”字型打印是什么意思呢?如下图所示的二叉树,遍历之后打印结果如右图,即为二叉树的之字型打印。
分析题意:当打印奇数行时,按照从左到右的顺序打印,当打印偶数行时,要按照从右往左相反的方向打印,这样的结构很自然想到用栈来实现,但我们需要创建两个栈,来区分偶数行和奇数行的情况。当为奇数行时,需要从右到左入栈,从左到右出栈,偶数行相反。
代码实现:
//之字形遍历 void Print() { _Print(_root); } void _Print(Node* root) { if (root == NULL) return; stack<Node*> s[2];//两个栈 int cur = 0; int next = 1; s[cur].push(root); while (!s[0].empty() || !s[1].empty()) { Node* pNode = s[cur].top(); s[cur].pop(); cout << pNode->_data << " "; if (cur == 0)//当前是偶数层,下一层是奇数层 { if (pNode->_left != NULL) s[next].push(pNode->_left); if (pNode->_right != NULL) s[next].push(pNode->_right); } else//下一层是偶数层 { if (pNode->_right) s[next].push(pNode->_right); if (pNode->_left) s[next].push(pNode->_left); } if (s[cur].empty())//交换 { cout << endl; cur = 1 - cur; next = 1 - next; } } }
阅读全文
0 0
- 之字形打印二叉树
- 之字形打印二叉树
- 之字形打印二叉树
- 之字形打印二叉树
- 按之字形打印二叉树
- 按照之字形打印二叉树
- 按之字形打印二叉树
- 按之字形打印二叉树
- 二叉树------之字形打印二叉树
- 按之字形顺序打印二叉树
- 二叉树分层遍历(含之字形打印)
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 牛客网 | 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 按之字形顺序打印二叉树
- 如何控制Excel统计图数据的实际显示范围
- 一期 商城项目 十天(上)
- 单元化架构,为什么要用以及我们如何做到
- Mysql查询树形结构数据
- 稳压电源 连载13:扩大电压的调节范围
- 之字形打印二叉树
- 每日练习
- CCF CSP 201512-2 消除类游戏
- 蓝桥杯 基础练习 杨辉三角形
- 为你,千千万万遍——《追风筝的人》
- tools
- RPM包制作
- <<iText in Action 2nd>>读书笔记汇总
- 每日练习