首页 > 试题广场 >

设一棵二叉树的根结点指针为T,请采用先序非递归遍历二叉树的方

[问答题]
设一棵二叉树的根结点指针为T,请采用先序非递归遍历二叉树的方法,用C语言函数形式写出统计树中结点数的算法:BTLC(T)。
//先序遍历非递归算法
int BTLC(BiTree bt){
	//需要用到栈,这里简单写作一个数组来用, 最好用链栈,定义好入栈、出栈的操作接口 
	BiTree T = bt;
	BiTree ptr[20]; 
	int top = -1;
    int result = 0;
	while(T || top!=-1){
		//按照上面的遍历,先输出数据,然后左子树入栈
		while(T){
			ptr[++top]=T;
			T=T->lchild; 
		} 
		if(top!=-1){
			T = ptr[top--];
            retult++;
			T = T->rchild;
		} 
	}
    return result;
}

编辑于 2020-07-13 09:01:32 回复(0)