数据结构链表二叉树的创建、前序遍历、中序遍历、后序遍历。代码可直接copy调用
#include"stdio.h"
#include"stdlib.h"
typedef struct node * pointer;
struct node{
char data;
pointer lchild,rchild;
};
//创建树
pointer creat()
{
pointer t;
char c;
scanf_s("%c",&c);
if(c=='@') return NULL;
t=(struct node *)malloc(sizeof(struct node));
t->data=c;
t->lchild=creat();
t->rchild=creat();
return t;
}
//前序遍历
void porder(pointer t)
{
if(t==NULL) return;
printf("%c",t->data);
porder(t->lchild);
porder(t->rchild);
}
//中序遍历
void inorder(pointer t)
{
if(t==NULL) return;
inorder(t->lchild);
printf("%c",t->data);
inorder(t->rchild);
}
//后序遍历
void lorder(pointer t)
{
if(t==NULL) return;
lorder(t->lchild);
lorder(t->rchild);
printf("%c",t->data);
}
void main()
{
pointer root;
root=creat();
printf("前序遍历:");
porder(root);
printf("\n");
printf("中序遍历:");
inorder(root);
printf("\n");
printf("后序遍历:");
lorder(root);
printf("\n");
}