博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
careercup-树与图 4.8
阅读量:6211 次
发布时间:2019-06-21

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

4.8 你有两棵非常大的二叉树:T1,有几百万个结点;T2,有几百个结点。设计一个算法,判断T2是否为T1的子树。

如果T1有这么一个结点n,其子树与T2一模一样,则T2C++实现代码:

#include
#include
using namespace std;//Definition for binary treestruct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};void createTree(TreeNode *&root){ int i; cin>>i; if(i!=0) { TreeNode *tmp=new TreeNode(i); root=tmp; createTree(root->left); createTree(root->right); }}bool isSub(TreeNode *n1,TreeNode *n2){  if(n1==NULL)    return false;  if(n1==n2)    return true;  if(n1->val!=n2->val)    return false;  return isSub(n1->left,n2->left)&&isSub(n1->right,n2->right);}bool isSubTree(TreeNode *root1,TreeNode *root2){   bool result=false;   if(root1&&root2)  { if(root1->val==root2->val) result=isSub(root1,root2); if(!result) result=isSubTree(root1->left,root2);   if(!result)     result=isSubTree(root1->right,root2);  } return result;}int main(){ TreeNode *root1=NULL; TreeNode *root2=NULL; createTree(root1); createTree(root2); cout<
<

 

转载地址:http://sjsja.baihongyu.com/

你可能感兴趣的文章
MikroTik RouterOS授权级别
查看>>
如何用C++做游戏(3)
查看>>
session熟知
查看>>
【Web API系列教程】3.9 — 实战:处理数据(添加新条目到数据库)
查看>>
VS2015 个人常用快捷键
查看>>
angularjs新手教程 factory利用callback传递参数的用法
查看>>
和 Pipelining 说再见,cURL 放弃使用管道技术
查看>>
【云吞铺子】阿里云文档开源
查看>>
宣武医院:让物联网为智慧医疗添翼
查看>>
SparkConf加载与SparkContext创建(源码阅读一)
查看>>
swagger-bootstrap-ui 1.9.2 发布,提供前后端分离解决方案
查看>>
Vue 组件库 HeyUI@1.16.0 更新日志
查看>>
Redis在windows下的下载与安装
查看>>
PhpStorm 2018.3.5 发布,PHP 集成开发环境
查看>>
JSP EL表达式学习笔记
查看>>
window IIS6/IIS7取消脚本执行权限,禁止运行脚本木马
查看>>
windows下elasticsearch配置及spring boot 简单demod的 整合
查看>>
降低硬件要求!戴尔新品将VR内容的渲染移到云端
查看>>
javascript高级程序设计第一章
查看>>
1.ASP.NET全栈开发之服务端验证基础
查看>>