二叉树遍历的算法问题
原题的意思是给出前序和中序遍历的顺序,然后得出后序遍历的顺序。这段代码是二叉树的存储方式,但自己理解不到其中的原因,特别是为什么要设置loc这个变量以及为什么loc++,希望各位能解惑,谢谢
int loc; //静态数组中已经分配的结点个数
Node *creat(){ //申请一个结点空间,返回指向其的指针
Tree[loc].lchild=Tree[loc].rchild=NULL; //初始化左右儿子为空
return &Tree[loc++]; //返回指针,且loc累加
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它这应该是在用数组实现二叉树吧,相当于第0个元素存着根节点,自然索引要往前移动存后面的元素了
但这段代码很垃圾,垃圾就在于
int loc;
,只声明不初始化loc,默认以为系统会把loc设成0。这样做是很危险的,有的系统可能不初始化为0,而是一个随意的数,后面就分分钟Segment Fault代码后面的注释不是说的挺清楚的吗。
log就是为了知道二叉树的节点个数,++就代表每create一次节点个数就+1