用数据结构二叉树代码顺序实现的时候,无法编译成功,不知道怎么引用、用指针,结构体数组怎么引入函数,求解!
#include<stdio.h>
#define Maxsize 1000
typedef struct TNode{
int value;
bool isEmpty;
}TNode;
TNode t[Maxsize];
void Initbitree(TNode&);
bool Createbitree(TNode&,int);
void print(TNode);
bool Preorder(TNode,int);
int main()
{
Initbitree(t);
int e;
printf("输入根节点数值:\n");
scanf("%d",&e);
Createbitree(t,e);
int i;
printf("输入开始遍历位:\n");
scanf("%d",&i);
printf("先序遍历:\n");
Preorder(t, i);
return 0;
}
void Initbitree(TNode &T)
{
for(int i=0;i<Maxsize;i++)
T[i].isEmpty=true;
}
void Creatbitree(TNode &T,int e)
{
T[1].value=e;
T[1].isEmpty=false;
}
void print(TNode T,int i)
{
printf("打印树节点:%d\n",T[i].value);
}
//先序遍历
bool Preorder(TNode T,int i)
{
if(T[i].isEmpty==false)
print(T,i);
if(T[2i].isEmpty==false)
Preorder(T,2i);
if(T[2i+1].isEmpty==false)
Preorder(T,2i+1);
return true;
}
#include<stdio.h>
#define Maxsize 1000
typedef struct TNode{
int value;
bool isEmpty;
}TNode;
TNode t[Maxsize];
void Initbitree(TNode*);
void Createbitree(TNode*,int);
void print(TNode*);
bool Preorder(TNode*,int);
int main()
{
Initbitree(t);
int e;
printf("输入根节点数值:\n");
scanf("%d",&e);
Createbitree(t,e);
int i;
printf("输入开始遍历位:\n");
scanf("%d",&i);
printf("先序遍历:\n");
Preorder(t, i);
return 0;
}
void Initbitree(TNode *T)
{
for(int i=0;i<Maxsize;i++)
T[i].isEmpty=true;
}
void Createbitree(TNode *T,int e)
{
T[1].value=e;
T[1].isEmpty=false;
}
void print(TNode* T,int i)
{
printf("打印树节点:%d\n",T[i].value);
}
//先序遍历
bool Preorder(TNode* T,int i)
{
if(T[i].isEmpty==false)
print(T,i);
if(T[2*i].isEmpty==false)
Preorder(T,2*i);
if(T[2*i+1].isEmpty==false)
Preorder(T,2*i+1);
return true;
}