zoukankan      html  css  js  c++  java
  • 二叉树的建立与递归遍历C语言版

    </pre><pre name="code" class="cpp">#include <stdio.h>
    #include <malloc.h>
    
    
    typedef struct BTNode
    {
    char data;
    struct BTNode *lchild;
    struct BTNode *rchild;
    }BTNode;
    
    
    void createTree(BTNode* *T)
    {
    char ch = getchar();
    if(ch=='#') 
    {
    *T=NULL;
    return;
    }
    (*T) = (BTNode*)malloc(sizeof(BTNode));
    (*T)->data = ch;
    createTree(&(*T)->lchild);
    createTree(&(*T)->rchild);
    }
     
    void preOrder(BTNode *T)//先序遍历
    {
    if(T==NULL) return;
    printf("%c	", T->data);
    if(T->lchild!=NULL)
    preOrder(T->lchild);
    if(T->rchild != NULL)
    preOrder(T->rchild);
    }
    
    
    void inOrder(BTNode *T)//中序遍历
    {
    if(T==NULL) return;
    
    if(T->lchild!=NULL)
    inOrder(T->lchild);
    printf("%c	", T->data);
    if(T->rchild != NULL)
    inOrder(T->rchild);
    }
    
    
    void postOrder(BTNode *T)//后序遍历
    {
    if(T==NULL) return;
    
    if(T->lchild!=NULL)
    postOrder(T->lchild);
    if(T->rchild != NULL)
    postOrder(T->rchild);
    printf("%c	", T->data);
    }
    
    
    int main(int argc, char const *argv[])
    {
    BTNode *T;
    createTree(&T);
    puts("PreOrder visit:");
    preOrder(T);
    putchar('
    ');
    
    
    puts("inOrder visit:");
    inOrder(T);
    putchar('
    ');
    
    
    puts("PostOrder visit:");
    postOrder(T);
    putchar('
    ');
    return 0;
    }
    /*运行结果:
    
    
    ABD###C##
    PreOrder visit:
    A       B       D       C
    inOrder visit:
    D       B       A       C
    PostOrder visit:
    D       B       C       A
    请按任意键继续. . .*/
    


  • 相关阅读:
    CSS选择器
    HTML2
    html
    http协议
    python--Selectors模块/队列
    Linux系统管理02----目录和文件管理
    Linux系统管理01-----系统命令
    02作业 linux第一章和第三章命令
    01作业 Linux系统管理应用
    01:计算机硬件组层与基本配置------02计算机系统硬件核心知识
  • 原文地址:https://www.cnblogs.com/yldf/p/6249885.html
Copyright © 2011-2022 走看看