您的位置:首页 > 其它

习题6.18

2012-02-27 11:30 239 查看
//6.18 打印所有祖先结点
void printances (BiTree T,char x)
{
int i = 0 ;
BiTree array[20] ,bt ,pre ;
bt = T ;
pre = null ;
while (i >0 || bt != null)
{
if (bt != null)
{
array[++i] = bt ;
bt = bt -> lchild ;
}
else
{
bt = array[i] ;
if (bt -> rchild != NULL && bt-> rchild != pre)
bt = bt -> rchild;
else
{
pre = array[i];
if (bt -> data == x)
break ;
i-- ;
bt = NULL;
}
}

}
cout << x <<"的祖先是"<<" " <<endl;
for (int j = i ; j > 0 ; j--)
{
cout << array[j] -> data << " " ;
}
cout <<endl ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: