原题的意思是给出前序和中序遍历的顺序,然后得出后序遍历的顺序。这段代码是二叉树的存储方式,但自己理解不到其中的原因,特别是为什么要设置loc这个变量以及为什么loc++,希望各位能解惑,谢谢
int loc; //静态数组中已经分配的结点个数
Node *creat(){ //申请一个结点空间,返回指向其的指针
Tree[loc].lchild=Tree[loc].rchild=NULL; //初始化左右儿子为空
return &Tree[loc++]; //返回指针,且loc累加
}
它这应该是在用数组实现二叉树吧,相当于第0个元素存着根节点,自然索引要往前移动存后面的元素了
但这段代码很垃圾,垃圾就在于
int loc;
,只声明不初始化loc,默认以为系统会把loc设成0。这样做是很危险的,有的系统可能不初始化为0,而是一个随意的数,后面就分分钟Segment Fault