这个二叉树先序遍历的代码正确吗?

void LeftShow(BTNode *head)
BTNode rchildlist[50] //建一个用于储存右子树的堆栈,因为输出父节点,然后输b
BTNodesshow=head://将show指针初始化为head的地址,show用于遍历时存储i
int i=0;//1为rchildlist堆栈顶.
while (1)

if(show=-nULL) //当遍历到的节点是NULL时,进行分情况判断

if(1-=0)//堆栈此时也为空,已遍历完整个树
break;
else//堆栈不为空则执行退栈操作

show=rchildlist[i] //将退栈的值赋给下一个需要遍历节点
i--


else //当遍历到的节占不为NULL

{printf("%c\t"shou->data)//输出节点存储的值
if(show->RChild!=NULL)//判断该节点有没有右子树
i++
rchildlist[i]=(BTNode)show->Rchild;//如果有则将右子树进堆栈

show=(BTNode)show->LChild;//将该节点左子树赋值为下一个需要遍历节点