繁体   English   中英

AVL树中的打印元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM