输入二叉树先序序列,输出先序,中序,后序序列

简介: 输入二叉树先序序列,输出先序,中序,后序序列


/*====================================================
程序功能:输入二叉树先序序列,输出先序,中序,后序序列
作者:令狐荣豪
完成日期:2019/5/19
=====================================================*/
#include<stdio.h>
#include<stdlib.h>
typedef struct BiTNode
{
  char data;//定义二叉链表的结构体
  struct BiTNode *lchild, *rchild;
}Bitree;
Bitree *CreateBtree_DLR(Bitree* root);//以先序遍历二叉树
void PreOrder(Bitree* T);//先序遍历二叉树
void InOrder(Bitree *T);//中序遍历二叉树
void PostOrder(Bitree *T);//后序遍历二叉树
/*================================
函数功能:构建二叉树
=================================*/
Bitree* CreateBtree_DLR(Bitree* root)
{
  char ch;
  scanf("%c", &ch);
  if (ch == '@')
    root = NULL;
  else
  {
    root = (Bitree*)malloc(sizeof(Bitree));
    root->data = ch;
    root->lchild = CreateBtree_DLR(root->lchild);//构造左子树
    root->rchild = CreateBtree_DLR(root->rchild);//构造右子树
  }
  return (root);
}
/*==================================
函数功能:先序遍历递归算法
函数输入:树的根结点
===================================*/
void PreOrder(Bitree *T)
{
  if (T != NULL)
  {
    printf("%c", T->data);
    PreOrder(T->lchild);
    PreOrder(T->rchild);
  }
}
/*==================================
函数功能:中序遍历
===================================*/
void InOrder(Bitree *T)
{
  if (T != NULL)
  {
    InOrder(T->lchild);
    printf("%c", T->data);
    InOrder(T->rchild);
  }
}
/*=================================
函数功能:后序遍历
==================================*/
void PostOrder(Bitree *T)
{
  if (T != NULL)
  {
    PostOrder(T->lchild);
    PostOrder(T->rchild);
    printf("%c",T->data);
  }
}
int main()
{
  Bitree *T = NULL;
  printf("输入二叉树的先序遍历结点,建立二叉树。(子树为空时输入@)\n");
  T = CreateBtree_DLR(T);
  printf("\n先序遍历结果:\n");
  PreOrder(T);
  printf("\n中序遍历结果:\n");
  InOrder(T);
  printf("\n后序遍历的结果:\n");
  PostOrder(T);
  return 0;
}


目录
相关文章
|
11月前
排序二叉树的创建及先序、中序、后序输出二叉树
排序二叉树的创建及先序、中序、后序输出二叉树
50 1
|
5月前
|
Java C++ 索引
leetcode-106:从中序与后序遍历序列构造二叉树
leetcode-106:从中序与后序遍历序列构造二叉树
44 0
|
11天前
21_从中序与后序遍历序列构造二叉树
21_从中序与后序遍历序列构造二叉树
|
10月前
|
C++ 索引
从中序与后序遍历序列构造二叉树(C++实现)
从中序与后序遍历序列构造二叉树(C++实现)
67 1
|
10月前
|
C++ 索引
从前序与中序遍历序列构造二叉树(C++实现)
从前序与中序遍历序列构造二叉树(C++实现)
75 1
leetcode 106 从中序和后续遍历序列构造二叉树
leetcode 106 从中序和后续遍历序列构造二叉树
80 0
leetcode 106 从中序和后续遍历序列构造二叉树