面试题23:从上往下打印二叉树
2015-10-24 11:19
441 查看
struct Stack { Tree *tree; Stack *pNext; }; void Push(Stack **pTop,Tree *tree) { if(pTop == NULL) { return ; } Stack *pStack =new Stack; pStack->tree = tree; pStack->pNext = (*pTop); (*pTop) = pStack; } Tree *Pop(Stack **pTop) { if(pTop == NULL ||(*pTop) == NULL) { return NULL; } Stack *pDel = (*pTop); Tree *tree = pDel->tree; (*pTop) = (*pTop)->pNext; delete pDel ; pDel = NULL; return tree; } void PushQueue(Stack **pTopOne,Tree *tree) { if(pTopOne == NULL) { return ; } Push(pTopOne,tree); } Tree *PopQueue(Stack **pTopOne,Stack **pTopTwo) { if((*pTopTwo) == NULL) { if((*pTopOne) == NULL) { return NULL; } while((*pTopOne) != NULL) { Push(pTopTwo,Pop(pTopOne)); } } return Pop(pTopTwo); } void Print(Tree *root) { Stack *pTopOne = NULL; Stack *pTopTwo = NULL; while(root) { cout<<root->nValue<<" "; if(root->pLeft) { PushQueue(&pTopOne,root->pLeft); } if(root->pRight) { PushQueue(&pTopOne,root->pRight); } root = PopQueue(&pTopOne,&pTopTwo); } }
相关文章推荐
- ios初次面试(20151023)
- 面试题23:从上往下打印二叉树
- 如果你身边有程序员 今天对他好一点
- Android程序员的一些面试建议
- 黑马程序员_JavaIO流(二)
- HashTable-HashMap(Android,Java最常见面试题)
- 庆祝程序员节,入驻杭州云栖小镇
- C#程序员经常用到的10个实用代码片段
- (九)黑马程序员——oc基础之分类与协议
- EMBA提前面试准备技巧
- (八)黑马程序员——Foundation框架之NSString的常用方法
- 月薪3万的程序员都避开了哪些坑
- ——黑马程序员——编程老手与高手的误区
- “异或”处理数组的相关算法的面试题
- 如果你身边有程序员 今天对他好一点
- 程序员应该怎样去学习和掌握计算机英语呢?
- JAVA异常架构图及面试题
- 面试题7:用两个栈实现队列
- 【程序员眼中的统计学(9)】总体和样本的估计:进行预测
- 关于java异常处理的面试题