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

美工需要的网站电子商务网站建设第一章课后

美工需要的网站,电子商务网站建设第一章课后,自己装修设计app,建设彩票网站需要多少投资前言 二叉搜索树#xff08;搜索二叉树#xff0c;Binary search tree#xff09;是一种特殊的二叉树。其规则为#xff1a;左子树的值一定小于等于根#xff0c;右子树的值一定大于等于根#xff0c;并且左右子树也为搜索二叉树。 二叉搜索树的插入 1.若树为空#xf…前言 二叉搜索树搜索二叉树Binary search tree是一种特殊的二叉树。其规则为左子树的值一定小于等于根右子树的值一定大于等于根并且左右子树也为搜索二叉树。 二叉搜索树的插入 1.若树为空插入的数据为根节点的数据 2.若树不为空按照二叉搜索树的性质判断节点的值与插入值的大小关系。若大于节点的值则往右边走。若小于节点的值则往左边走 二叉搜索树的搜索 1.从根节点开始查找小于节点值则往左边大于节点值则往右边。找到就返回 2.若遍历完都没有找到即返回找不到 二叉搜索树的删除重点 1.删除叶子节点既没有左右孩子直接删除然后将其父亲节点的指针赋值为nullptr 2.删除只有一个孩子的节点直接删除然后将孩子连接至父亲节点 3.删除有两个孩子的节点不能直接删除。从这个节点出发寻找左子树的最大值既最右节点或者右子树的最小值既最左节点。将找到的值的赋值给要删除的节点然后删除我们找到的节点这样就能保证不会破坏二叉搜索树的性质。 补充若删除根节点的话要单独处理一下 代码实现 templateclass K struct BSNode {K _val;BSNodeK* _left;BSNodeK* _right;BSNode(const K key):_val(key), _left(nullptr), _right(nullptr){ } };templateclass K class BSTree {//typedef BSNodeK Node;using Node BSNodeK;//新的重命名方式 public:void Insert(const K key)//搜索二叉树的插入(不允许冗余){Node* cur _root;if (!cur){_root new Node(key);}else{Node* parent cur;while (cur){if (cur-_val key){parent cur;cur cur-_right;}else{parent cur;cur cur-_left;}}if (parent-_val key){parent-_right new Node(key);}else if (parent-_val key){parent-_left new Node(key);}elsereturn;}}bool Search(const K key)//查找{Node* cur _root;while (cur){if (cur-_val key){cur cur-_right;}else if (cur-_val key){cur cur-_left;}elsereturn true;}return false;}//搜索二叉树的删除void Erase(const K key){Node* cur _root;Node* parent cur;//先找到相应位置while (cur){if (cur-_val key){parent cur;cur cur-_right;}else if (cur-_val key){parent cur;cur cur-_left;}elsebreak;}if (!cur)return;//进行删除if (!cur-_left !cur-_right)//没有孩子{if (cur _root)//若删除根节点{delete _root;_root nullptr;}else{if (parent-_left cur)parent-_left nullptr;elseparent-_right nullptr;delete cur;cur nullptr; // 显式置空}}else if (!cur-_left || !cur-_right)//有一个孩子{if (cur _root)//若删除根节点{if (cur-_left){_root cur-_left;delete cur;cur nullptr; // 显式置空}else{_root cur-_right;delete cur;cur nullptr; // 显式置空}}else{if (!cur-_left){if (parent-_left cur){parent-_left cur-_right;delete cur;cur nullptr; // 显式置空}else{parent-_right cur-_right;delete cur;cur nullptr; // 显式置空}}else{if (parent-_left cur){parent-_left cur-_left;delete cur;cur nullptr; // 显式置空}else{parent-_right cur-_left;delete cur;cur nullptr; // 显式置空}}}}else//有两个孩子{//寻找左子树最大值或右子树最小值来替换curNode* Replace cur-_left;Node* Replacep cur;while (Replace-_right){Replacep Replace;Replace Replace-_right;}swap(Replace-_val, cur-_val);if(Replacep-_right Replace)Replacep-_right Replace-_left;elseReplacep-_left Replace-_left;delete Replace;}}void Inorder()//中序遍历{_Inorder(_root);cout endl;}private:void _Inorder(Node* root)//中序遍历{if (!root)return;_Inorder(root-_left);cout root-_val ;_Inorder(root-_right);}Node* _root nullptr; };
http://www.hkea.cn/news/14446704/

相关文章:

  • 昆明网上商城网站建设有做网站维护的
  • 怎样建个网站网站推广优化排名教程
  • 手机网站开发基础盘锦做网站电话
  • 软件开发 网站建设 游戏开发seo网站案例
  • 网站开发项目报告书专业竞价托管哪家好
  • 网站单页面可以做302跳转吗手机网站免费生成
  • html网页源码下载湖南有实力的关键词优化
  • 适合穷人的18个创业项目太原优化网站排名
  • 安徽网站建设公司哪家好推荐好用的浏览器
  • 上海大型网站建设织梦cms同步wordpress
  • 微信网站模板广州做网站费用
  • 陇西网站建设 室内设计企业营销的网站
  • 太原模板建站平台网站上放个域名查询
  • 成都摄影网站建设wordpress有哪些小工具
  • 长沙市制作企业网站公司石家庄市住房城乡建设局网站
  • 专门做win7的网站手机棋牌游戏平台
  • 重庆网站建设哪家公司哪家好网页界面设计想法
  • 龙岗网站建设排名骏域网络科技有限公司
  • 12306网站建设团队网站开发提案
  • 柳州市住房和城乡建设部网站海尔的网络营销模式
  • 怎么做qq分享网站wordpress页脚修改
  • 有色建设网站加强网站互动交流平台建设自查
  • 网站开发与维护竞赛临夏建设网站
  • wordpress网站合并企业建站做网站
  • 淮南查查网手机网站怎么做SEO优化
  • 番禺外贸型网站建设桂林房产
  • 深圳 网站策划wordpress 生成水印
  • 常见的网站首页布局特价手机网站建设
  • 电脑装机网站明星百度指数在线查询
  • 科技公司网站建设策划方案海南省建设工程执业中心网站