• 二叉树--遍历(c语言简单实现)


     1 #include<stdlib.h>
     2 typedef char ele;
     3 
     4 typedef struct BiTNode{
     5     ele e;
     6     struct BiTNode *lnode,*rnode;
     7 }bitNode,*bitree;
     8 
     9 void visit(ele e);
    10 
    11 /*
    12  * 先序遍历
    13  *     (1)访问根节点;
    14  *     (2)先序遍历左子树
    15  *     (3)先序遍历右子树
    16  *
    17  * */
    18 void PreOrderTraverse(bitree t){
    19     if(t){
    20         visit(t->e);
    21         PreOrderTraverse(t->lnode);
    22         PreOrderTraverse(t->rnode);
    23     }
    24 }
    25 
    26 /*
    27  * 中序遍历
    28  *     (1)先序遍历左子树
    29  *     (2)访问根节点;
    30  *     (3)先序遍历右子树
    31  *
    32  * */
    33 void InOrderOrderTraverse(bitree t){
    34     if(t){
    35         InOrderOrderTraverse(t->lnode);
    36         visit(t->e);
    37         InOrderOrderTraverse(t->rnode);
    38     }
    39 }
    40 
    41 /*
    42  * 后序序遍历
    43  *     (1)先序遍历左子树
    44  *     (2)先序遍历右子树
    45  *     (3)访问根节点;
    46  *
    47  * */
    48 void PosOrderOrderTraverse(bitree t){
    49     if(t){
    50         PosOrderOrderTraverse(t->lnode);
    51         PosOrderOrderTraverse(t->rnode);
    52         visit(t->e);
    53     }
    54 }
    55 
    56 /*
    57  *
    58  * 先序生成一颗二叉树
    59  *
    60  * */
    61 void createBiTree(bitree *t){
    62     char c;
    63     scanf("%c",&c);
    64     if(c==' ')*t=NULL;
    65     else{
    66         *t=(bitNode *)malloc(sizeof(bitNode));
    67         (*t)->e=c;
    68         createBiTree(&((*t)->lnode));
    69         createBiTree(&((*t)->rnode));
    70     }
    71 }
  • 相关阅读:
    蛇形填数
    开灯问题
    水仙花数
    C++Primer笔记-----day02
    C++Primer笔记-----day01
    面试智力题
    maven 打包197
    子系统 安装vsftpd197
    office 安装破解197
    oracle 创建多个数据库197
  • 原文地址:https://www.cnblogs.com/mozhuhao/p/4486842.html
Copyright © 2020-2023  润新知