二叉树遍历的算法问题

发布于 2022-09-03 12:48:34 字数 398 浏览 9 评论 0

原题的意思是给出前序和中序遍历的顺序,然后得出后序遍历的顺序。这段代码是二叉树的存储方式,但自己理解不到其中的原因,特别是为什么要设置loc这个变量以及为什么loc++,希望各位能解惑,谢谢

int loc;                                        //静态数组中已经分配的结点个数 
Node *creat(){                                    //申请一个结点空间,返回指向其的指针 
    Tree[loc].lchild=Tree[loc].rchild=NULL;        //初始化左右儿子为空 
    return &Tree[loc++];                        //返回指针,且loc累加 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠北森屋 2022-09-10 12:48:34

它这应该是在用数组实现二叉树吧,相当于第0个元素存着根节点,自然索引要往前移动存后面的元素了

但这段代码很垃圾,垃圾就在于int loc;,只声明不初始化loc,默认以为系统会把loc设成0。这样做是很危险的,有的系统可能不初始化为0,而是一个随意的数,后面就分分钟Segment Fault

天赋异禀 2022-09-10 12:48:34

代码后面的注释不是说的挺清楚的吗。
log就是为了知道二叉树的节点个数,++就代表每create一次节点个数就+1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文