主题:急!!!关于顺序存储二叉树
为什么总是通不过编译???,我用的是trouble c
/*顺序结构的二叉树,打印出编号为n的节点的双亲和所有孩子*/
#define M 20
#include "stdio.h"
int treeq[M];/*存二叉树的数组*/
out(int a)
{ if(2a<=M) /*如果左孩子存在,就输出左孩子*/
printf("%d\n",treeq[2a]);
else
return(0);
if(2a+1<=M)/*如果右孩子存在,就输出右孩子*/
printf("%d\n",treeq[2a+1]);
else
return(0);
out(2a);/*输出左孩子以下的各个节点*/
out(2a+1);/*输出右孩子以下的各个节点*/
}
outree(int n)
{ int a;
a=n/2; /*得到头节点地址*/
printf("%d\n",treeq[a]); /*输出头节点*/
out(n); /*输出头节点以后的节点*/
}
main()
{
treeq[1]=1; /*构造一颗二叉树*/
treeq[2]=2;
treeq[3]=3;
treeq[4]=4;
treeq[5]=5;
treeq[6]=6;
treeq[7]=7;
outree(2);
}
/*顺序结构的二叉树,打印出编号为n的节点的双亲和所有孩子*/
#define M 20
#include "stdio.h"
int treeq[M];/*存二叉树的数组*/
out(int a)
{ if(2a<=M) /*如果左孩子存在,就输出左孩子*/
printf("%d\n",treeq[2a]);
else
return(0);
if(2a+1<=M)/*如果右孩子存在,就输出右孩子*/
printf("%d\n",treeq[2a+1]);
else
return(0);
out(2a);/*输出左孩子以下的各个节点*/
out(2a+1);/*输出右孩子以下的各个节点*/
}
outree(int n)
{ int a;
a=n/2; /*得到头节点地址*/
printf("%d\n",treeq[a]); /*输出头节点*/
out(n); /*输出头节点以后的节点*/
}
main()
{
treeq[1]=1; /*构造一颗二叉树*/
treeq[2]=2;
treeq[3]=3;
treeq[4]=4;
treeq[5]=5;
treeq[6]=6;
treeq[7]=7;
outree(2);
}