建立二叉树,并实现先序遍历

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:21:38
任务:要求能够输入树的各个结点,并能够输出先序遍历序列;
要求:分别建立二叉树存储结构的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;

#include<stdio.h>
#include<stdlib.h>
#define MAX_QUEUE_SIZE 100
typedef struct node *tree_pointer;
struct node{
char ch;
tree_pointer left_child,right_child;
};
int front=0;
int rear=0;
tree_pointer queue[MAX_QUEUE_SIZE];
void pushq(int *rear,tree_pointer item)
{
if(*rear==MAX_QUEUE_SIZE-1)
printf("The queue is full\n");
else
queue[++*rear]=item;
}
tree_pointer popq(int *front,int rear)
{
if(*front==rear)
return NULL;
return queue[++*front];
}
tree_pointer root=NULL;
tree_pointer create(tree_pointer ptr)
{
char ch;
scanf("%c",&ch);
if(ch==' ')
ptr=NULL;
else{
ptr=(tree_pointer)malloc(sizeof(node));
ptr->ch=ch;
ptr->left_child=create(ptr->left_child);
ptr->right_child=create(ptr->right_child);
}
return ptr;
}