數據結構鏈表二叉樹的創建、前序遍歷、中序遍歷、後序遍歷。代碼可直接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");
}