答辩几乎是踩线过了,二天后要面试,今天想不用递归写出树的中序遍历。结果想了两个钟头。。
最后去b站找了视频才勉强看懂了(#`-_ゝ-),下面是我跟着教程走做的代码:
void stack(tree*tr)
{
if(tr==NULL)//判断是否为空
return;
tree *jiedian[10];
int top=-1;
tree *mp=tr;
while(top!=-1||mp!=NULL)
{
while(mp!=NULL)//从左走
{
jiedian[++top]=mp;
mp=mp->L;
}
if(top!=-1)从右走
{
mp=jiedian[top--];
printf("%d ",mp->data);
mp=mp->R;
}
}
}
我看了视频的代码后在草稿纸上花了四十多分钟才明白这种方法的具体含义,感觉我的悟性好差啊。
趴在床上画的,有亿点点丑:
遇到看不懂的代码,带几个数据进去推一下还是可以弄懂的。
加油学吧。