[英]Printing elements from AVL Tree
我正在尝试编写一条代码,每次我穿过树时都打印20个元素。 到目前为止,我所做的事情做得不好。 我试图实现一个全局变量(称为flag
),每次我打印节点的内容时,我都会递增该变量,但是它不能正常工作。 我还使用了顺序树搜索来打印树中的每个元素。 这就是我所拥有的:
int inorder(Myprod a)
{
int f=0;
char resposta[1];
int i;
int p;
if(a != NULL )
{
inorder(a->left);
printf("%s\n",a->prod);
f++;
flag += f;
inorder(a->right);
if(flag == 20)
printf("Want to see more elements from tree ? (Y/N)\n");
i = scanf ("%s" , resposta);
if (resposta[0] == 'N' && i == 1)
{
return 1;
}
flag = f = 0;
p = inorder(a);
if (p == 1)
return 1;
}
return 0;
}
所需输出 :树中的20个元素; 询问用户是否要从树中获取更多元素; 接下来的20个元素; ...
我该如何正确实施?
只需在树上运行任何DFS,在返回前20个元素后,将指针存储到您已完成的节点。 如果将来有打印另外20个节点的请求,只需从上次完成的节点恢复DFS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.