Advertisement

lesson11-3 利用二叉链表表示一棵二叉树,并编写一个算法来计算其高度

阅读量:

思路1:

非递归方式,

采用层次遍历算法计算二叉树的高度

关键:

1、last指针在何种情况下指向下一层次

代码1:

复制代码
 int getBiTreeDepth(BTNode *t){

    
 	//1.创建队列 2.初始化工作=>根节点入队
    
 	BTNode *que[MAXSIZE];
    
 	int front=-1,rear=-1;//front和rear指针必须是负1,否则front和last永远都不能相遇
    
 	int level=0,last=0;//last指针始终指向当前层的最右结点
    
 	rear=(rear+1)%MAXSIZE;
    
 	que[rear]=t;
    
 	BTNode *p;
    
 	while(front!=rear){
    
 		front=(front+1)%MAXSIZE;
    
 		p=que[front];
    
 		if(p->lchild){
    
 			rear=(rear+1)%MAXSIZE;
    
 			que[rear]=p->lchild;
    
 		}
    
 		if(p->rchild){
    
 			rear=(rear+1)%MAXSIZE;
    
 			qu

全部评论 (0)

还没有任何评论哟~