news 2026/6/10 17:02:19

PAT 1135 Is It A Red-Black Tree

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PAT 1135 Is It A Red-Black Tree



这一题的大意是给出一个二叉搜索树,让我们判断是不是红黑树,
只需要按题目要求构造好树,然后判断它是不是符合红黑树的条件即可。
题目给出了红黑树的性质,我们只需要判断它是否满足即可。
需要我们对二叉搜索树,建树,DFS掌握好
完整代码如下:

#include<bits/stdc++.h>#include<iostream>usingnamespacestd;//构造一棵二叉搜索树structnode{intdata;structnode*l;structnode*r;intcolor;};node*tostruct_tree(node*root,intx){if(root==nullptr){root=new(node);root->data=x;if(x>0){root->color=1;//表示黑色}else{root->color=0;//表示红色}root->l=nullptr;root->r=nullptr;}elseif(abs(x)<abs(root->data)){root->l=tostruct_tree(root->l,x);}elseif(abs(x)>abs(root->data)){root->r=tostruct_tree(root->r,x);}returnroot;}intgetBlackHeight(node*x){if(x==nullptr)return1;// NULL节点视为黑色(属性3)// 递归获取左右子树黑高intleft=getBlackHeight(x->l);intright=getBlackHeight(x->r);if(left==-1||right==-1)return-1;// 下层已经发现不合法,继续上传if(left!=right)return-1;// 属性5不满足,黑高不一致// 若当前是黑节点,黑高 +1returnleft+(x->color==1?1:0);}boolisredtree(node*root,boolflag){if(flag==0){if(root->color==0){returnfalse;}flag=1;}if(root!=nullptr&&root->color==0){//红色if(root->l!=nullptr&&root->l->color==0){returnfalse;}if(root->r!=nullptr&&root->r->color==0){returnfalse;}}if(getBlackHeight(root)==-1)returnfalse;if(root->l!=nullptr){if(!isredtree(root->l,1)){// cout<<"1"<<endl;returnfalse;}}if(root->r!=nullptr){if(!isredtree(root->r,1)){returnfalse;}}returntrue;}intmain(){intK;cin>>K;for(inti=0;i<K;i++){intN;cin>>N;node*root=nullptr;for(intj=0;j<N;j++){intx;cin>>x;root=tostruct_tree(root,x);}boolflag=0;if(isredtree(root,flag)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}return0;}

总结:考察树的相关性质,对基本知识点掌握扎实就好做。注意题目要求,我刚开始就自己幻想出多余条件,和理解错题意而写错,在写代码的时候也难免会写出bug,需要有较强的debug能力。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:33:50

Qwen3-Coder 30B A3B:Python开发者的终极AI编程助手

Qwen3-Coder 30B A3B&#xff1a;Python开发者的终极AI编程助手 【免费下载链接】Qwen3-Coder-30B-A3B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-Coder-30B-A3B-Instruct 在人工智能技术深度赋能软件开发的今天&#xff0c;一款专注于Python编…

作者头像 李华
网站建设 2026/6/10 13:32:49

Pytorch学习系列08 | YOLOv5-C3模块实现

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、前置知识 1、YOLOv5算法中的C3模块介绍 先引用一个生活化的案例图快速理解一下 C3 模块的全称是 CSP Bottleneck with 3 convolutions。它是 YOLOv5 在 …

作者头像 李华
网站建设 2026/6/10 5:13:11

对接发票接口需要注意的事项(让你少走弯路,少踩坑)

一、先理清楚&#xff1a;业务流程梳理是对接的 “地基”对接电子发票接口前&#xff0c;先明确自身业务场景与流程&#xff0c;避免 “盲目对接” 导致后期返工。核心要梳理 3 点&#xff1a;1. 明确开票场景与需求「开票触发方式」&#xff1a;是订单完成后自动开票&#xff…

作者头像 李华
网站建设 2026/6/10 13:28:54

走台丝印哪家专业

走台丝印哪家专业&#xff1f;深度解析专业丝印服务的选择标准 在五金、皮具、礼品、电子产品等众多制造业领域&#xff0c;走台丝印&#xff08;亦称平台丝印或手工丝印&#xff09;作为一种应用广泛、适应性强的印刷工艺&#xff0c;其印刷品质的优劣直接影响产品的外观与价…

作者头像 李华
网站建设 2026/6/10 15:30:37

终极指南:如何使用xhydra图形界面进行网络安全测试

终极指南&#xff1a;如何使用xhydra图形界面进行网络安全测试 【免费下载链接】thc-hydra hydra 项目地址: https://gitcode.com/gh_mirrors/th/thc-hydra xhydra作为thc-hydra的官方图形界面工具&#xff0c;让网络安全测试变得前所未有的简单。这款基于Gtk3开发的应用…

作者头像 李华
网站建设 2026/6/9 18:22:35

JDumpSpider:HeapDump敏感信息提取终极指南,5分钟快速上手

JDumpSpider&#xff1a;HeapDump敏感信息提取终极指南&#xff0c;5分钟快速上手 【免费下载链接】JDumpSpider HeapDump敏感信息提取工具 项目地址: https://gitcode.com/gh_mirrors/jd/JDumpSpider 还在为分析Java堆转储文件中的敏感信息而烦恼吗&#xff1f;JDumpSp…

作者头像 李华