当前位置: 首页 > news >正文

校园网站建设的要素字体logo设计在线生成器

校园网站建设的要素,字体logo设计在线生成器,wordpress 本地编辑,克隆网站后怎么做目录 1--搜索二叉树 2--完全二叉树 3--平衡二叉树 4--满二叉树 1--搜索二叉树 搜索二叉树的性质#xff1a;左子树的节点值都比根节点小#xff0c;右子树的节点值都比根节点大#xff1b; 如何判断一颗二叉树是搜索二叉树#xff1f; 主要思路#xff1a; 递归自底向…目录 1--搜索二叉树 2--完全二叉树 3--平衡二叉树 4--满二叉树 1--搜索二叉树 搜索二叉树的性质左子树的节点值都比根节点小右子树的节点值都比根节点大 如何判断一颗二叉树是搜索二叉树 主要思路         递归自底向上判断是否是一颗搜索二叉树返回判断结果的同时要返回对应的最小值和最大值 #include iostream #include climitsstruct TreeNode {int val;TreeNode *left, *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), right(nullptr) {} };struct ReturnType{bool isBST true;int max 0;int min 0;ReturnType(bool ib, int ma, int mi) : isBST(ib), max(ma), min(mi){} };class Solution { public:bool isBST(TreeNode *root){ReturnType res dfs(root);return res.isBST;}ReturnType dfs(TreeNode *root){// 初始化最大值为整型最小值最小值为整型最大值if(root NULL) return ReturnType(true, INT_MIN, INT_MAX); ReturnType left dfs(root-left);ReturnType right dfs(root-right);bool isBST true;if(!left.isBST || !right.isBST || left.max root-val || right.min root-val){isBST false;}int min std::min(std::min(root-val, left.min), std::min(root-val, right.min)); int max std::max(std::max(root-val, left.max), std::max(root-val, right.max));return ReturnType(isBST, max, min);} };int main(int argc, char *argv[]){TreeNode *Node1 new TreeNode(4);TreeNode *Node2 new TreeNode(2);TreeNode *Node3 new TreeNode(6);TreeNode *Node4 new TreeNode(1);TreeNode *Node5 new TreeNode(3);TreeNode *Node6 new TreeNode(5);TreeNode *Node7 new TreeNode(7);Node1-left Node2;Node1-right Node3;Node2-left Node4;Node2-right Node5;Node3-left Node6;Node3-right Node7;Solution S1;bool res S1.isBST(Node1);if (res) std::cout true std::endl;else std::cout false std::endl;return 0; } 2--完全二叉树 如何判断一颗二叉树是完全二叉树 主要思路         层次遍历二叉树的节点当遇到第一个节点其左右儿子不双全进行标记往后遇到的所有节点应均为叶子节点当遇到一个不是叶子节点时返回 false 表明二叉树不是完全二叉树 #include iostream #include queuestruct TreeNode {int val;TreeNode *left, *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), right(nullptr) {} };class Solution { public:bool isCBT(TreeNode *root){if(root NULL) return true;std::queueTreeNode* q;q.push(root);bool flag false; while(!q.empty()){ // 层次遍历TreeNode *cur q.front();q.pop();if(cur-left ! NULL) q.push(cur-left);if(cur-right ! NULL) q.push(cur-right);if( // 标记节点后还遇到了不是叶子节点的节点返回false(flag true (cur-left ! NULL || cur-right ! NULL)) || // 左儿子为空右儿子不为空返回false(cur-left NULL cur-right ! NULL)) return false;// 遇到第一个左右儿子不双全的节点进行标记if(cur-left NULL || cur-right NULL) flag true;}return true;} };int main(int argc, char *argv[]){TreeNode *Node1 new TreeNode(1);TreeNode *Node2 new TreeNode(2);TreeNode *Node3 new TreeNode(3);TreeNode *Node4 new TreeNode(4);TreeNode *Node5 new TreeNode(5);TreeNode *Node6 new TreeNode(6);TreeNode *Node7 new TreeNode(7);TreeNode *Node8 new TreeNode(8);TreeNode *Node9 new TreeNode(9);TreeNode *Node10 new TreeNode(10);TreeNode *Node11 new TreeNode(11);TreeNode *Node12 new TreeNode(12);Node1-left Node2;Node1-right Node3;Node2-left Node4;Node2-right Node5;Node3-left Node6;Node3-right Node7;Node4-left Node8;Node4-right Node9;Node5-left Node10;Node5-right Node11;Node6-left Node12;Solution S1;bool res S1.isCBT(Node1);if (res) std::cout true std::endl;else std::cout false std::endl;return 0; } 3--平衡二叉树 平衡二叉树要求左子树和右子树的高度差 1 如何判断一颗二叉树是平衡二叉树 主要思路         递归自底向上判断是否是一颗平衡二叉树返回判断结果的同时要返回对应的深度 #include iostream #include queuestruct TreeNode {int val;TreeNode *left, *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), right(nullptr) {} };struct ReturnType{bool isbalanced true;int height 0;ReturnType(bool ib, int h) : isbalanced(ib), height(h) {} };class Solution { public:bool isBalanced(TreeNode *root){ReturnType res dfs(root);return res.isbalanced;}ReturnType dfs(TreeNode *root){if(root NULL) return ReturnType(true, 0);ReturnType left dfs(root-left);ReturnType right dfs(root-right);int cur_height std::max(left.height, right.height) 1; bool cur_balanced left.isbalanced right.isbalanced std::abs(left.height - right.height) 1;return ReturnType(cur_balanced, cur_height);}private:int height 0; };int main(int argc, char *argv[]){TreeNode *Node1 new TreeNode(1);TreeNode *Node2 new TreeNode(2);TreeNode *Node3 new TreeNode(3);TreeNode *Node4 new TreeNode(4);TreeNode *Node5 new TreeNode(5);TreeNode *Node6 new TreeNode(6);TreeNode *Node7 new TreeNode(7);TreeNode *Node8 new TreeNode(8);TreeNode *Node9 new TreeNode(9);TreeNode *Node10 new TreeNode(10);TreeNode *Node11 new TreeNode(11);TreeNode *Node12 new TreeNode(12);Node1-left Node2;Node1-right Node3;Node2-left Node4;Node2-right Node5;Node3-left Node6;Node3-right Node7;Node4-left Node8;Node4-right Node9;Node5-left Node10;Node5-right Node11;Node6-left Node12;Solution S1;bool res S1.isBalanced(Node1);if (res) std::cout true std::endl;else std::cout false std::endl;return 0; } 4--满二叉树 满二叉树的判断节点数 2^深度 - 1 如何判断一颗二叉树是平衡二叉树 主要思路         递归自底向上判断是否是一颗满二叉树返回判断结果的同时要返回对应的深度和节点数 #include iostream #include queuestruct TreeNode {int val;TreeNode *left, *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), right(nullptr) {} };struct ReturnType{bool isFCT true;int height 0;int nodes 0;ReturnType(bool ib, int h, int n) : isFCT(ib), height(h), nodes(n){} };class Solution { public:bool isFCT(TreeNode *root){ReturnType res dfs(root);return res.isFCT;}ReturnType dfs(TreeNode *root){if(root NULL) return ReturnType(true, 0, 0);ReturnType left dfs(root-left);ReturnType right dfs(root-right);bool isFCT true;int cur_nodes left.nodes right.nodes 1;int cur_height std::max(left.height, right.height) 1;if(!left.isFCT || !right.isFCT || (1cur_height) - 1 ! cur_nodes){isFCT false;}return ReturnType(isFCT, cur_height, cur_nodes);} };int main(int argc, char *argv[]){TreeNode *Node1 new TreeNode(1);TreeNode *Node2 new TreeNode(2);TreeNode *Node3 new TreeNode(3);TreeNode *Node4 new TreeNode(4);TreeNode *Node5 new TreeNode(5);TreeNode *Node6 new TreeNode(6);TreeNode *Node7 new TreeNode(7);TreeNode *Node8 new TreeNode(8);TreeNode *Node9 new TreeNode(9);TreeNode *Node10 new TreeNode(10);TreeNode *Node11 new TreeNode(11);TreeNode *Node12 new TreeNode(12);Node1-left Node2;Node1-right Node3;Node2-left Node4;Node2-right Node5;Node3-left Node6;Node3-right Node7;Node4-left Node8;Node4-right Node9;Node5-left Node10;Node5-right Node11;Node6-left Node12;Solution S1;bool res S1.isFCT(Node1);if (res) std::cout true std::endl;else std::cout false std::endl;return 0; }
http://www.w-s-a.com/news/425136/

相关文章:

  • 树莓派做影视网站网站建设企业 熊账号
  • 网站iis7.5配置免费网站建设模板下载
  • 生物公司网站建设方案wordpress自定义字段调用
  • 静态网站公用头部如何调用标题wordpress自动采集翻译插件怎么用
  • 网站做单链 好不好网站营销不同阶段的网站分析目标
  • 网线制作颜色顺序兰州网站推广优化
  • 北京沙河教做网站的企业融资以什么为基础
  • 给网站添加百度地图绵阳做绵阳做网站网站
  • 用电脑做服务器制作网站东莞营销网站建设
  • 网站需要怎么做wordpress 重装
  • 做电影网站赚钱的方法世界500强企业排名2023
  • 领卷网站怎么做的西宁设计网站建设
  • 东莞网站建设价位软件开发税率是13%还是6
  • 企业网站建设一条龙如何在网上推广自己
  • 成品网站制作公司企梦网站建设
  • 网站开发微信授权登录ftp 如何 更新 wordpress
  • icp备案和网站不符查询公司的网站备案
  • 万江营销型网站建设泰安网站建设制作电话号码
  • 做网站是用ps还是ai服饰东莞网站建设
  • 只做一页的网站多少钱网站开发就业趋势
  • 陈村网站建设有哪些网站可以做店面设计
  • 查询网站注册信息wordpress 照片墙
  • 成都网站设计服务商室内设计设计师网站推荐
  • 企业建站系统cms百度网址ip
  • wordpress 代码编辑插件下载搜索引擎优化seo课程总结
  • 韩都衣舍网站建设的改进邯郸公众号小程序制作
  • 上海设计网站建设在线视频制作
  • 东营高端网站建设新建网站如何让百度收录
  • wordpress怎么生成网站地图微网站平台怎样做网站
  • 同安区建设局网站招投标公众号简介有趣的文案