c语言虚节点建立二叉树,先序输出。我纠结错在哪?数组中的数是乱的

看样子你这是带虚节点的层序建树方法,

你既然把虚(空)节点也放入了队列,就应该在后面的建树过程中跳过这些虚节点,即:

在if(rear==1) root=s;前加入:while(Q[front]==NULL) front++;以此来跳过前面加入的虚节点。

当然你也可以不把这些虚节点加入队列,也就是在输入了实节点时才real++,但这样你就无法用real%2来判断是左子树还是右子树了,这个问题你可以通过另外增加一个变量来完全模拟把虚节点加入队列时real的变化情况来得到解决。

另外,我通常会想到的一种层序建树的方法是,首先读入根结点,入队列,然后每次取出队首元素,读入两个节点信息,这两个节点就是队首元素的左右子节点,然后各自入队列(左子节点先入,且虚节点不入队列)。这样直到队列为空则树已建立完成。。

还有:

if(ch!=NULL)这应该是判断是否是虚节点吧?不知道你在输入时是用什么字符代表虚结点的。难道可以输入NULL?

rear++;

Q[rear]=s;

换成

Q[rear]=s;

rear++;

同时将

front=1;//---------------双亲节点

换成

front=0;//---------------双亲节点

再看看

为什么虚呗租号密码怎么老错啊

不知道密码是什么?手机号也不用了,那这是比较麻烦的事,你可以去到试音营业营业厅去拿出你的身份证,请人家查一下,查询一下,六好没有被别人使用的话,还是空号那你可以补办补办的,以后在中国申请密码什么的,然后工作人员会帮你办理的,这样子就知道了。