zoukankan      html  css  js  c++  java
  • 二叉树建立,先序、中序、后序遍历(c实现)

     建立树ABC##DE#G##F###,输出

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 #define ElemType char
     5 //节点声明,数据域、左孩子指针、右孩子指针
     6 typedef struct BiTNode{
     7     char data;
     8     struct BiTNode *lchild, *rchild;
     9 }BiTNode, *BiTree;
    10 //先序建立二叉树
    11 BiTree CreateBiTree(){
    12     char ch;
    13     BiTree T;
    14     scanf_s("%c", &ch);
    15     if (ch == '#')T = NULL;
    16     else{
    17         T = (BiTree)malloc(sizeof(BiTNode));
    18         T->data = ch;
    19         T->lchild = CreateBiTree();
    20         T->rchild = CreateBiTree();
    21     }
    22     return T;//返回根节点
    23 }
    24 //先序遍历二叉树
    25 void PreOrderTraverse(BiTree T){
    26     if (T){
    27         printf("%c", T->data);
    28         PreOrderTraverse(T->lchild);
    29         PreOrderTraverse(T->rchild);
    30     }
    31 }
    32 
    33 //中序遍历
    34 void InOrderTraverse(BiTree T){
    35     if (T){
    36         InOrderTraverse(T->lchild);
    37         printf("%c", T->data);
    38         InOrderTraverse(T->rchild);
    39     }
    40 }
    41 //后序遍历
    42 void PostOrderTraverse(BiTree T){
    43     if (T){
    44         PostOrderTraverse(T->lchild);
    45         PostOrderTraverse(T->rchild);
    46         printf("%c", T->data);
    47     }
    48 }
    49 void main(){
    50     BiTree T;
    51     T = CreateBiTree();//建立
    52     InOrderTraverse(T);//输出
    53     system("pause");
    54 }
  • 相关阅读:
    zoj 3627#模拟#枚举
    Codeforces 432D Prefixes and Suffixes kmp
    hdu 4778 Gems Fight! 状压dp
    CodeForces 379D 暴力 枚举
    HDU 4022 stl multiset
    手动转一下田神的2048
    【ZOJ】3785 What day is that day? ——KMP 暴力打表找规律
    poj 3254 状压dp
    C++中运算符的优先级
    内存中的数据对齐
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5520029.html
Copyright © 2011-2022 走看看