#include<stdio.h>
#include<stdlib.h>
//建立二叉树
struct treenode *createBiTree(struct treenode **p,int x);
//显示二叉树
void traverse(struct treenode *p);
//获取二叉树总的节点数并返回
int nodeNum(struct treenode *p);
//初始化数组的data数据,并使二叉树里面的arrayorder数据与数组下标一致
void initArray(struct treenode *p);
//将二叉树转化为数组
void transform(struct treenode *p);
struct treenode
{
int data;
struct treenode *left,*right;
int arrayorder;//转化为数组之后该节点在数组里的元素下标
};
struct treenode *createBiTree(struct treenode **p,int x)
{
if(*p==NULL)
{
*p=(struct treenode *)malloc(sizeof(struct treenode));
if (*p==NULL)
{
printf("out of memory,press any key to quit...\n");
exit(0);
}
(*p)->data=x;
(*p)->left=(*p)->right=NULL;
(*p)->arrayorder=0;