按之字形顺序打印二叉树
2016-07-01 17:15
393 查看
//请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印, //第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 #include "iostream" #include "stack" using namespace std; struct treeNode { treeNode* left; treeNode* right; int value; }; void printZigzag(treeNode* pRoot) { if (pRoot == NULL) return; stack<treeNode*> levels[2]; int current = 0; levels[current].push(pRoot); treeNode* p; while (!levels[current].empty()) { while (!levels[current].empty()) { p = levels[current].top(); levels[current].pop(); cout << p->value << '\t'; if (current == 0) { if (p->left != NULL) levels[1].push(p->left); if (p->right != NULL) levels[1].push(p->right); } else { if (p->left != NULL) levels[0].push(p->left); if (p->right != NULL) levels[0].push(p->right); } } cout << endl; current = !current; } }用两个栈,数组存放两个栈,0、1下标交换当前栈,这个思想很棒!
相关文章推荐
- Android 的源代码结构
- Redis(2)- 基本数据结构和操作
- mongoose使用中遇到的问题一:
- Python - 编码转换
- 杭电acm1002
- Unity RectTransform
- C语言字符串反转函数
- 栈内存、堆内存
- 用CMake查看OpenCV源码生成VS工程
- mysql checksum table golang
- 2.1 sikuli 中编程运行
- Android TouchEvent事件传递机制
- MFC Doc/View结构实现ActiveX控件
- 2016春季练习——水题
- (转)收集——Android Handler分析总结篇
- uva 272 TEX Quotes(水题)
- Android之四大组件之一-Service(二)
- 简单选择排序
- 待簳的题......
- 【Matplotlib】 刻度设置(2)