**树的建立**
1.先序建立
char a[100];
int i;
struct node * creat(struct node * root)
{
if(a[++i]==',')
root = NULL;
else
{
root = (struct node *)malloc(sizeof(struct node));
root->data = a[i];
root->left = creat(root->left);
root->right = creat(root->right);
}
return root;
}
树的4类遍历
递归
1.先后中序遍历
换位置就行
void postorder(struct node * root)
{
if(root)
{
printf("%c", root->data);
postorder(root->left);
postorder(root->right);
}
}
2.层次遍历 队列实现
void level(struct node * root)
{
struct node * p;
struct node * queue[2000];
int front = 0, rear = 0;
if(root)
{
queue[rear++] = root;//父亲入队
while(front!=rear)//直至父亲们遍历完
{
p = queue[front++];
printf("%c", p->data);
if(p->left)
queue[rear++] = p->left;
if(p->right)
queue[rear++] = p->right;
}
}
printf("\n");
}