源文件
#include "tree.h"
tree_p createNode(datatype data)
{
tree_p T = (tree_p)malloc(sizeof(tree));
if (T == NULL)
{
printf("空间申请失败\n");
return NULL;
}
T->data = data;
return T;
}
//创建二叉树
tree_p createTree()
{
char data;
char ch;
scanf_s("%c",&data,(unsigned int)sizeof(data));
getchar();
if (data == '#')
{
return NULL;
}
tree_p T = createNode(data);
T->lchild = createTree();
T->rchild = createTree();
return T;
}
void prev(tree_p T)
{
if(T==NULL)
{
return;
}
printf("%c->", T->data);
prev(T->lchild);
prev(T->rchild);
}
void middle(tree_p T)
{
if (T == NULL)
{
return;
}
middle(T->lchild);
printf("%c->", T->data);
middle(T->rchild);
}
void behind(tree_p T)
{
if (T == NULL)
{
return;
}
behind(T->lchild);
behind(T->rchild);
printf("%c->", T->data);
}
头文件
#ifndef TREE_H_
#define TREE_H_
#include <stdio.h>
#include <stdlib.h>
typedef char datatype;
typedef struct treeNode
{
datatype data;
struct treeNode* lchild;
struct treeNode* rchild;
}tree,*tree_p;
tree_p createNode(datatype data);
tree_p createTree();
void prev(tree_p T);
#endif // !TREE_H_