首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

二叉树层次遍历,要求空间复杂度O(一),时间复杂度O(n)

2013-03-20 
二叉树层次遍历,要求空间复杂度O(1),时间复杂度O(n)二叉树层次遍历,要求空间复杂度O(1),时间复杂度O(n),请

二叉树层次遍历,要求空间复杂度O(1),时间复杂度O(n)
二叉树层次遍历,要求空间复杂度O(1),时间复杂度O(n),请大家帮忙给个算法,谢谢
[解决办法]
利用队列啊.
头结点入队列,#入队列.

每次取队首,然后把孩子全部入队列,遇到#的时候说明上一行已经结束了,当前行要开始了,所以此刻应该再插入一个#

[解决办法]
用队列吧
1.Status LevelTraverseBiTree(BiTree T)  
2.{   LinkQueue Q;  
3.    InitQueue(Q);  
4.    BiTree u;  
5.    u=(BiTree)malloc(sizeof(BiTNode));  
6.    EnQueue(Q, T);  
7.      while(Q.front!=Q.rear)  
8.{   
9.        DeQueue(Q, u);  
10.        printf("%c",u->data);  
11.if(u->lchild)  
12.    EnQueue(Q, u->lchild);  
13.if(u->rchild)  
14.       EnQueue(Q, u->rchild);  
15.}  

热点排行