有n个结点的完全二叉树存放在一维数组A[1…n]中,据此建立一棵用二叉链表表示的二叉树。
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
typedef int Status;
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateList(int *w,int n);
void PreOrderTraverseCreateBiTree(BiTree *T,int *w,int n,int k);
Status PreOrderTraverse(BiTree T);
Status Visit(int e);
int sum=0;
int main()
{
int n,*w;
printf("有多少个数:");
scanf("%d",&n);
w=(int *)malloc(sizeof(int)*(n+1));
CreateList(w,n);
BiTree *T;
T=(BiTree*)malloc(sizeof(BiTree));
PreOrderTraverseCreateBiTree(T,w,n,1);
printf("\n前序遍历结果:");
PreOrderTraverse(*T);
return 0;
}
//---创建线性表---//
void CreateList(int *w,int n)
{
int i;
for(i=1;i<=n;i++)
{
printf("请输入第%d个数:",i);
scanf("%d",&w[i]);
}
}
//---按前序遍历过程创建二叉树