zoukankan      html  css  js  c++  java
  • 数据结构--二叉树

    /*******************************************************************
    Copyright(c) 2016, Harry He
    All rights reserved.
    Distributed under the BSD license.
    (See accompanying file LICENSE.txt at
    https://github.com/zhedahht/CodingInterviewChinese2/blob/master/LICENSE.txt)
    *******************************************************************/
    
    //==================================================================
    // 《剑指Offer——名企面试官精讲典型编程题》代码
    // 作者:何海涛
    //==================================================================
    
    #pragma once
    
    struct BinaryTreeNode 
    {
        int                    m_nValue; 
        BinaryTreeNode*        m_pLeft;  
        BinaryTreeNode*        m_pRight; 
    };
    
    __declspec( dllexport ) BinaryTreeNode* CreateBinaryTreeNode(int value);
    __declspec( dllexport ) void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight);
    __declspec( dllexport ) void PrintTreeNode(const BinaryTreeNode* pNode);
    __declspec( dllexport ) void PrintTree(const BinaryTreeNode* pRoot);
    __declspec( dllexport ) void DestroyTree(BinaryTreeNode* pRoot);
    /*******************************************************************
    Copyright(c) 2016, Harry He
    All rights reserved.
    Distributed under the BSD license.
    (See accompanying file LICENSE.txt at
    https://github.com/zhedahht/CodingInterviewChinese2/blob/master/LICENSE.txt)
    *******************************************************************/
    
    //==================================================================
    // 《剑指Offer——名企面试官精讲典型编程题》代码
    // 作者:何海涛
    //==================================================================
    
    #include <cstdio>
    #include "BinaryTree.h"
    
    BinaryTreeNode* CreateBinaryTreeNode(int value)
    {
        BinaryTreeNode* pNode = new BinaryTreeNode();
        pNode->m_nValue = value;
        pNode->m_pLeft = nullptr;
        pNode->m_pRight = nullptr;
    
        return pNode;
    }
    
    void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight)
    {
        if(pParent != nullptr)
        {
            pParent->m_pLeft = pLeft;
            pParent->m_pRight = pRight;
        }
    }
    
    void PrintTreeNode(const BinaryTreeNode* pNode)
    {
        if(pNode != nullptr)
        {
            printf("value of this node is: %d
    ", pNode->m_nValue);
    
            if(pNode->m_pLeft != nullptr)
                printf("value of its left child is: %d.
    ", pNode->m_pLeft->m_nValue);
            else
                printf("left child is nullptr.
    ");
    
            if(pNode->m_pRight != nullptr)
                printf("value of its right child is: %d.
    ", pNode->m_pRight->m_nValue);
            else
                printf("right child is nullptr.
    ");
        }
        else
        {
            printf("this node is nullptr.
    ");
        }
    
        printf("
    ");
    }
    
    void PrintTree(const BinaryTreeNode* pRoot)
    {
        PrintTreeNode(pRoot);
    
        if(pRoot != nullptr)
        {
            if(pRoot->m_pLeft != nullptr)
                PrintTree(pRoot->m_pLeft);
    
            if(pRoot->m_pRight != nullptr)
                PrintTree(pRoot->m_pRight);
        }
    }
    
    void DestroyTree(BinaryTreeNode* pRoot)
    {
        if(pRoot != nullptr)
        {
            BinaryTreeNode* pLeft = pRoot->m_pLeft;
            BinaryTreeNode* pRight = pRoot->m_pRight;
    
            delete pRoot;
            pRoot = nullptr;
    
            DestroyTree(pLeft);
            DestroyTree(pRight);
        }
    }
  • 相关阅读:
    Python实现机器人聊天
    node.js使用express框架进行文件上传
    nginx让所有的http地址重定向到https
    nginx配置https
    vscode源码编译运行打包使其由英文变为中文
    阿里云配置tomcat https
    springboot打成的jar包如何在Linux上持久运行
    wordpress数据表分析
    DevExpress Components16.2.6 Source Code 重编译教程
    DataGridView绑定泛型List时,利用BindingList来实现增删查改
  • 原文地址:https://www.cnblogs.com/music-liang/p/12610826.html
Copyright © 2011-2022 走看看