首页 > 二叉树遍历的算法问题

二叉树遍历的算法问题

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

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

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


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

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

【热门文章】
【热门文章】