HDOJ3791 二叉搜索树
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3791
先建立二叉排序树,然后进行比较。比较时采用递归。
代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct node{//树节点数据结构定义; int data; struct node *left,*right; }*BiTree,BTNode; void insert(BiTree &t, BiTree s)//插入节点; { if(s==NULL)return; BiTree p,temp; if(t==NULL){ t=s; } else{ p=t; while(p!=NULL){ temp=p; if(s->data<p->data){//往左; p=p->left; } else{//往右; p=p->right; } } if(s->data<temp->data){//插入到左子树; temp->left=s; } else{//插入到右子树; temp->right=s; } } } int check(BiTree s,BiTree t){//比较两树是否相同;0表示相同,否则不相同; if(s==NULL&&t==NULL){ return 0; } else if((s==NULL&&t!=NULL)||(s!=NULL&&t==NULL)){ return 1; } else{ if(s->data!=t->data){ return 1; } else{ return check(s->left,t->left)+check(s->right,t->right); } } } int main(){ int n,len1,len2,i,result; char s[11],q[11]; while(scanf("%d",&n)!=EOF){ if(n==0)break; getchar(); scanf("%s",s); len1=strlen(s); BiTree t; t=NULL; for(i=0;i<len1;i++)//建立示范序列的二叉树; { BiTree p; p=(BiTree)malloc(sizeof(BTNode)); p->data=s[i]-'0'; p->left=NULL; p->right=NULL; insert(t,p); } while(n--){ scanf("%s",q); len2=strlen(q); BiTree r; r=NULL; for(i=0;i<len1;i++)//建立示范序列的二叉树; { BiTree p; p=(BiTree)malloc(sizeof(BTNode)); p->data=q[i]-'0'; p->left=NULL; p->right=NULL; insert(r,p); } result=check(r,t); if(result==0){ printf("YES/n"); } else{ printf("NO/n"); } } } }
HDOJ3791 二叉搜索树相关推荐
- LeetCode简单题之二叉搜索树的最小绝对差/最小距离
题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:root = [4,2,6,1,3] 输出: ...
- LeetCode简单题之二叉搜索树的范围和
题目 给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和. 示例 1: 输入:root = [10,5,15,3,7,null,18], low = 7, ...
- 【剑指Offer】23、二叉搜索树的后序遍历序列
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路: 对于后续遍历序列,序 ...
- 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!
构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...
- 剑指offer:面试题36. 二叉搜索树与双向链表
题目: 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 为了让您更好地理解问题,以下面的二叉搜索树为例: ...
- 剑指offer:面试题33. 二叉搜索树的后序遍历序列
题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜 ...
- 二叉树:二叉搜索树实现 逆序数问题
关于逆序数的问题描述如下: 已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], cou ...
- 二叉树:二叉搜索树的编码和解码
二叉搜索树的编码和解码描述: 编码:即将一个二叉搜索树编码,节点数值转换为字符串 解码:即将一个字符串解码,数值转换为对应的二叉搜索树的节点 过程导图如下: 针对性编码实现如下: /*数字转字符串*/ ...
- 二叉树:二叉搜索树的创建和插入
二叉搜索树又名二叉排序树. 大概简略的思维导图如下,方便记忆特性 基本二叉搜索树创建过程如下 /*数据结构如下*/ typedef struct tree {int data;struct tree ...
最新文章
- 云校庆系列活动 | 软件定义新基建,数据驱动新未来
- 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3
- CTFshow php特性 web144
- JDK1.8新特性之时间和日期的使用
- oracle管理员登录报错,关于Oracle使用管理员账号登录失败的问题
- MySQL数据库进阶(API的理解、Python对MySQL的接口)
- 如何从wireshark 抓包中的RTP导出 H.264 PAYLOAD,变成可用暴风直接播放的H264 裸码流文件
- java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决(转)
- Python实验-字典攻击
- mysql数据库安装教程(超级超级详细)
- 产品 电信nb接口调用_NB-IOT开发流程---基于中国电信物联网平台实现平台对接
- Tuxedo中间件常用命令
- 四川理工学院计算机学院在哪里,四川理工计算机学院
- 网际风全推数据接口_网际风数据接口飞狐交易师版简要说明.doc
- 应届生比老员工更吃香?为什么大厂都在抢应届生
- 什么叫wipe,安卓用户如何去wipe?
- html中改变图标颜色,使用CSS更改图标的颜色
- java基础学安卓开发_Android开发学习路线之Java基础学习
- LeetCode—494. 目标和(Target Sum)——分析及代码(Java)
- 为什么特斯拉Q2业绩能超预期?
热门文章
- [JetBrains Rider] 在保存文件时自动更新文件头的方法
- layui + echarts股票K线图(含案例、代码、截图)(转载篇)
- MUI框架:栅格系统 + grid宫格布局 - 案例篇
- MUI 图片上传、预览、删除重选等等实现
- ios 裁剪圆形头像_IOS_iOS如何裁剪圆形头像,本文实例为大家介绍了iOS裁剪 - phpStudy...
- WordPress-Lolimeow佛系简约主题 v1.6
- php下载页下载隐藏真实文件地址,php如何隐藏实际文件下载地址
- yaesu7800 维修手册_《YAESU 八重洲 FT-7800系列 维修手册》.pdf
- 帝国CMS7.5仿hao123漫画网站模板动态版
- 小程序功能模块-飞鱼知识变现小程序2.5.3源码