#include<iostream>
#define MAX_TREE_SIZE 100
typedef char TElemType;
//二叉树的结构链表结点结构的定义
typedef struct BiTNode { //结点结构
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//二叉树的前序遍历递归算法
void PreOrderTraverse(BiTree T)
{
if (T == NULL)
return;
printf("%c", T->data); //显示结点数据
PreOrderTraverse(T->lchild); //前序遍历左子树
PreOrderTraverse(T->rchild); //前序遍历右子树
}
//二叉树的中序遍历递归算法
void InOrderTraverse(BiTree T)
{
if (T == NULL)
return;
InOrderTraverse(T->lchild);
printf("%c", T->data);
InOrderTraverse(T->rchild);
}
//二叉树的后序遍历递归算法
void PostOrderTraverse(BiTree T)
{
if (T == NULL)
return;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c", T->data);
}
//按前序输入二叉树中结点的值(一个字符)
//#表示空树,构造二叉链表表示二叉树T
void CreateBiTree(BiTree *T)
{
TElemType ch;
scanf_s("%c", &ch);
if (ch == '#')
*T = NULL;
else {
*T = (BiTree)malloc(sizeof(BiTNode));
if (!*T)
exit(OVERFLOW);
(*T)->data = ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
int main()
{
BiTree tree;
CreateBiTree(&tree);
InOrderTraverse(tree);
}
二叉树的遍历与创建
最新推荐文章于 2022-11-28 22:28:24 发布