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 }
  • 相关阅读:
    HDU3068 最长回文
    本周最后一天——4.18
    一周又结束了——4.14
    一本通1591:数字计数
    一本通1589:不要 62
    一本通1588:数字游戏
    洛谷P2657 [SCOI2009] windy 数
    一本通1587: 【例 3】Windy 数
    一本通1586:【 例 2】数字游戏
    安卓自动化测试(一)
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5520029.html
Copyright © 2011-2022 走看看