博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer——二叉树
阅读量:6171 次
发布时间:2019-06-21

本文共 2173 字,大约阅读时间需要 7 分钟。

#include"iostream"#include"stdio.h"#include"math.h"using namespace std;struct BinaryTreeNode{    double m_Value;    BinaryTreeNode* m_pLeft;    BinaryTreeNode* m_pRight;};BinaryTreeNode* CreateBinaryTreeNode(double value){    BinaryTreeNode* pNode=new BinaryTreeNode();    pNode->m_Value=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)    {        cout<<"value of this node is:"<
m_Value<
m_pLeft!=nullptr) cout<<"value of its left child is:"<
m_pLeft->m_Value<
m_pRight!=nullptr) cout<<"value of its right child is:"<
m_pRight->m_Value<
m_pLeft!=nullptr) PrintTreeNode(pRoot->m_pLeft); if(pRoot->m_pRight!=nullptr) PrintTreeNode(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); }}bool Equal(const double &a,const double &b){ if(fabs(a-b)<0.0000001) return true; return false;}bool DoesTreeAHaveTreeB(BinaryTreeNode* pRootA,BinaryTreeNode* pRootB){ if(pRootB==nullptr) return true; if(pRootA==nullptr) return false; if(Equal(pRootA->m_Value,pRootB->m_Value)) { return DoesTreeAHaveTreeB(pRootA->m_pLeft,pRootB->m_pLeft)&&DoesTreeAHaveTreeB(pRootA->m_pRight,pRootB->m_pRight); } else { return false; }}bool HasSubTree(BinaryTreeNode* pRootA,BinaryTreeNode* pRootB){ if(pRootB==nullptr) return false; if(pRootA==nullptr) return false; bool result=false; if(Equal(pRootA->m_Value,pRootB->m_Value)) { result=DoesTreeAHaveTreeB(pRootA,pRootB); } if(!result) { result=HasSubTree(pRootA->m_pLeft,pRootB); } if(!result) { result=HasSubTree(pRootA->m_pRight,pRootB); } return result;}
BinaryTree.h

 

转载于:https://www.cnblogs.com/acm-jing/p/10425571.html

你可能感兴趣的文章
mysql 索引B-Tree类型对索引使用的生效和失效情况详解
查看>>
指针的看法
查看>>
Cocos-2d 坐标系及其坐标转换
查看>>
LAMP网站的CACHE机制概要
查看>>
[MySQL 5.6] 5.6新参数slave_rows_search_algorithms
查看>>
ESXi5.1嵌套KVM虚拟化环境支持配置
查看>>
爬虫的小技巧之–如何寻找爬虫入口
查看>>
JVM学习(二)垃圾收集器
查看>>
为hexo博客添加基于gitment评论功能
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
Flutter - Drawer 抽屉视图与自定义header
查看>>
ERP系统的优势_库存管理软件开发
查看>>
如何内行地评价公链(一)从真正的不可能三角谈起
查看>>
BigDecimal 详解
查看>>
Shell实战之函数的高级用法
查看>>
NASA制做模拟系外行星环境 发现了热木星大气不透明的原因
查看>>
Slog67_后端框架Skynet之Makefile解读
查看>>
iOS ShareSDK桥接技术
查看>>
BAT面试须知:Java开发的招聘标准
查看>>
WeUI for 小程序–使用教程
查看>>