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

昌平网站开发公司电话wordpress固定链接404

昌平网站开发公司电话,wordpress固定链接404,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.dnsts.com.cn/news/116538.html

相关文章:

  • 稳定的网络建站咨询电话网站抓取压力高
  • 国内外包网站深圳注册公司推荐
  • 手机营销型网站制作html网页制作完整代码
  • 网站怎么做搜狗排名网页设计与制作课程大纲
  • 一个网站收录很高 但外链很少是什么原因深圳品牌网站制作公司哪家好
  • 网站下载视频的方法泉州响应式网站建设
  • 怎么做一款贷款网站怎么在雅虎做网站收入
  • 宁波电信网站备案小游戏代码编程
  • 长沙网站定制开发建设比较好的网站空间
  • 跨平台网站开发东莞网站推广需要多少钱
  • 成都建设网站企业电话wordpress 路径标签
  • 学生个人网页制作html动态营销型企业网站优化
  • 深圳网站工作室wordpress查询分类为空
  • 昆明网站建设公司_营销方案有哪些
  • 网站建设ps模板衡水网站建设优化推广
  • 那个做图网站叫什么美食网站建设方案
  • 如何自己做众筹网站公司网站如何做seo
  • 山东川畅科技联系 网站设计wordpress技术博客模板
  • 判断网站到期企业服务网站制作
  • 做网站优化常用工具网站内页
  • 网站服务器开发自助网站建设方案
  • 山西商城网站建设网站开发前端和后端技术
  • 商城网站开发方案书重庆电子工程职业学院招生网
  • 网站制作中企动力国内做网上旅游业务的网站
  • 成都网站开发技术百度网址大全导航首页
  • 做外单网站旅游网站建设设计
  • 关于网站开发的外文翻译用jsp做的网站在不同浏览器显示效果差异很大如何解决
  • 企业网站的网络营销功能临沂网站建设小程序
  • 电子商务网站建设 教材做网站地图
  • 哪里学网站建设与管理网站服务器搭建及配置的具体步骤