老师又让我写作业了直接三种遍历完成提交

Posted @了凡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老师又让我写作业了直接三种遍历完成提交相关的知识,希望对你有一定的参考价值。

文章目录

数据结构


前言

博主介绍:

– 本人是一个不知名的二本院校计科专业大二学生,每天除了上课就是在学校里的一个小组学习,之前学习了JAVA后学了Python如今在专注于学习Golang语言,每天总是很多胡思乱想,想一些不着调的想法,想做很多很多的软件让很多朋友们使用,但如今的技术还不到家,希望可以做出很多很多的APP给大家一起用,现仍需继续努力!一起加油!



头文件

#include <cstdio>
#include <iostream>

结构体 类型定义

typedef struct BiTNode{
     char data;           // 结点数据域
    struct BiTNode *LChild, *RChild;  // 左右孩子指针
}BiTNode, *BiTree;

以先序遍历创建二叉树

void CreateBiTree(BiTree &T) {
    char ch;
    std::cin >> ch; //输入字符ch的值
    if (ch == '#'){  //递归结束,建空树
        T = NULL;
        return;
    }else{
        T = new BiTNode;
        T->data = ch; //生成根结点
        CreateBiTree(T->LChild);  // 递归创建左子树
        CreateBiTree(T->RChild); // 递归创建右子树
    }
}

先序遍历

void DLR(BiTree T){
    if(T) {
        std::cout << T->data; //访问根结点
        DLR(T->LChild); //递归遍历左子树
        DLR(T->RChild); //递归遍历右子树
    }
}

中序遍历

void LDR(BiTree T){
    if(T) {
        LDR(T->LChild); //递归遍历左子树
        std::cout << T->data; //访问根结点
        LDR(T->RChild); //递归遍历右子树
    }
}

后序遍历

void LRD(BiTree T){
    if(T) {
        LRD(T->LChild); //递归遍历左子树
        LRD(T->RChild); //递归遍历右子树
        std::cout << T->data; //访问根结点
    }
}

主函数

int main(){
    BiTree T;
    CreateBiTree(T);
    DLR(T);
    LDR(T);
    LRD(T);
    return 0;
}

所有源码

#include <cstdio>
#include <iostream>

typedef struct BiTNode{
     char data;           // 结点数据域
    struct BiTNode *LChild, *RChild;  // 左右孩子指针
}BiTNode, *BiTree;


void DLR(BiTree T){
    if(T) {
        std::cout << T->data; //访问根结点
        DLR(T->LChild); //递归遍历左子树
        DLR(T->RChild); //递归遍历右子树
    }
}
void LDR(BiTree T){
    if(T) {
        LDR(T->LChild); //递归遍历左子树
        std::cout << T->data; //访问根结点
        LDR(T->RChild); //递归遍历右子树
    }
}
void LRD(BiTree T){
    if(T) {
        LRD(T->LChild); //递归遍历左子树
        LRD(T->RChild); //递归遍历右子树
        std::cout << T->data; //访问根结点
    }
}

void CreateBiTree(BiTree &T) {
    char ch;
    std::cin >> ch; //输入字符ch的值
    if (ch == '#'){  //递归结束,建空树
        T = NULL;
        return;
    }else{
        T = new BiTNode;
        T->data = ch; //生成根结点
        CreateBiTree(T->LChild);  // 递归创建左子树
        CreateBiTree(T->RChild); // 递归创建右子树
    }
}

int main(){
    BiTree T;
    CreateBiTree(T);
    LRD(T);
    return 0;
}


以上是关于老师又让我写作业了直接三种遍历完成提交的主要内容,如果未能解决你的问题,请参考以下文章

大型数据库作业2 (补作业用,未完成)

massCode 一款优秀的开源代码片段管理器

第四周-周记

不负初见

师生关系

无情,面试官又让我滚,因为我这样Redis hash类型~