栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二叉树定义与遍历

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二叉树定义与遍历

#include
#include

using namespace std;

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(): val(0),left(nullptr),right(nullptr){}
    TreeNode(int x):val(x),left(nullptr),right(nullptr){}
    TreeNode(int x, TreeNode* left,TreeNode*right):val(x),left(nullptr),right(nullptr){}
};


int main(int argc, char**argv) {

    TreeNode* head = new TreeNode(1);
    TreeNode* h2 = new TreeNode(2);
    TreeNode* h3 = new TreeNode(3);

    TreeNode* m2 = new TreeNode(4);
    TreeNode* m3 = new TreeNode(5);

    TreeNode* m4 = new TreeNode(6);
    TreeNode* m5 = new TreeNode(7);

    TreeNode* n2 = new TreeNode(8);
    TreeNode* n3 = new TreeNode(9);

    TreeNode* n4 = new TreeNode(10);
    TreeNode* n5 = new TreeNode(11);

    TreeNode* n6 = new TreeNode(12);
    TreeNode* n7 = new TreeNode(13);

    TreeNode* n8 = new TreeNode(14);
    TreeNode* n9 = new TreeNode(15);

    
    head->left = h2;
    head->right = h3;


    h2->left = m2;
    h2->right= m3;

    
    h3->left = m4;
    h3->right = m5;

    m2->left = n2;
    m2->right = n3;


    m3->left = n4;
    m3->right = n5;

    m4->left = n6;
    m4->right = n7;

    m5->left = n8;
    m5->right = n9;

}
// 二叉树的三种遍历方式


#include
#include
#include "TreeNode.h"

using namespace std;

void preOrder(TreeNode* head) {

    if(head==nullptr) {
        return;
    }
    cout<val<<" ";
    preOrder(head->left);
    preOrder(head->right);
}

void inOrder(TreeNode* head) {

    if(head==nullptr) {
        return;
    }

    inOrder(head->left);
    cout<val<<" ";
    inOrder(head->right);
}

void postOrder(TreeNode* head) {

    if(head==nullptr) {
        return; //
    }

    postOrder(head->left);
    postOrder(head->right);
    cout<val<<" ";
}


int main(int argc, char**argv) {

    TreeNode* head = new TreeNode(1);
    TreeNode* h2 = new TreeNode(2);
    TreeNode* h3 = new TreeNode(3);

    TreeNode* m2 = new TreeNode(4);
    TreeNode* m3 = new TreeNode(5);

    TreeNode* m4 = new TreeNode(6);
    TreeNode* m5 = new TreeNode(7);

    TreeNode* n2 = new TreeNode(8);
    TreeNode* n3 = new TreeNode(9);

    TreeNode* n4 = new TreeNode(10);
    TreeNode* n5 = new TreeNode(11);

    TreeNode* n6 = new TreeNode(12);
    TreeNode* n7 = new TreeNode(13);

    TreeNode* n8 = new TreeNode(14);
    TreeNode* n9 = new TreeNode(15);

    
    head->left = h2;
    head->right = h3;


    h2->left = m2;
    h2->right= m3;

    
    h3->left = m4;
    h3->right = m5;

    m2->left = n2;
    m2->right = n3;


    m3->left = n4;
    m3->right = n5;

    m4->left = n6;
    m4->right = n7;

    m5->left = n8;
    m5->right = n9;

    preOrder(head);
    cout< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965616.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号