关于网友提出的“ 求高手指导如何做操作界面(数据结构实验——二叉树)”问题疑问,本网通过在网上对“ 求高手指导如何做操作界面(数据结构实验——二叉树)”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 求高手指导如何做操作界面(数据结构实验——二叉树)
描述: 主函数:
void main()
{
int no;
BTNode *b,*p,*lp,*rp;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");
printf("请输入操作序号:\n1:输出二叉树\n2:输出H结点的左右孩子结点值\n3:输出二叉树的深度\n4:输出二叉树的宽度\n5:输出二叉树的结点个数\n6:输出二叉树的叶子结点个数\n7:结束\n");
scanf("%d",&no);
while(1)
{
switch(no)
{
case 1:
printf("二叉树为:\n");DispBTNode(b);break;
case 2:
{
printf("H结点的左右孩子结点值为:\n");
p=FindNode(b,'H');
if (p!=NULL)
{
lp=LchildNode(p);
if (lp!=NULL)
printf("左孩子为%c\n ",lp->data);
else
printf("无左孩子\n ");
rp=RchildNode(p);
if (rp!=NULL)
printf("右孩子为%c\n",rp->data);
else
printf("无右孩子\n ");
}
}break;
case 3:
printf("二叉树的深度为:%d\n",BTNodeHigh(b));break;
case 4:
printf("二叉树的宽度为:%d\n",BTWidth(b));break;
case 5:
printf("二叉树的结点个数为:%d\n",Nodes(b));break;
case 6:
printf("二叉树的叶子结点个数为:%d\n",LeafNodes(b)); break;
case 7:
return 1;
}
}
}
调试发现是死循环,好像break函数没起作用,是哪里有错,请指教!不胜感激
解决方案1: 把scanf("%d",&no);也要放到while里面
以上介绍了“ 求高手指导如何做操作界面(数据结构实验——二叉树)”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2221073.html