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

福泉网站制作网站建设施工方案

福泉网站制作,网站建设施工方案,装潢公司网站源码php,网站建设中最有效网站推广方式二叉搜索树 二叉搜索树#xff1a; 又为搜索二叉树#xff0c;一般具有以下的性质 若它的左子树不为空#xff0c;则左子树上所有的节点的值都小于父亲节点若它的右子树不为空#xff0c;则右子树上所有的节点的值都大于父亲节点它的左右子树也都为二叉搜索树 二叉搜索树…二叉搜索树 二叉搜索树 又为搜索二叉树一般具有以下的性质 若它的左子树不为空则左子树上所有的节点的值都小于父亲节点若它的右子树不为空则右子树上所有的节点的值都大于父亲节点它的左右子树也都为二叉搜索树 二叉搜索树操作 以下面图示例子 int a[] {8, 3, 1, 10, 6, 4, 7, 14, 13};1、二叉搜索树的查找 从根开始比较查找比根大就往右子树走比根小就往左子树走最多查找树的高度如果走到空就说明没有这个值查找失败 bool Find(const K key){Node* cur _root;if(cur-_key key){cur cur-_left;}else if(cur-_key key){cur cur-_right;}else {return true;}return false;}2、二叉搜索树的插入 插入的具体过程如下 树为空则直接新增节点赋值给root指针树不为空按二叉搜索树性质查找新增位置插入新增节点如果插入的值与它本身的值相等就失败二叉搜索树中不能有相同的值 bool Insert(const K key){//判断是不是空if(_root nullptr){_root new Node(key);return true;}//不是空就插入Node* cur _root;Node* parent nullptr;while(cur){if(cur-_key key){parent cur;cur cur-_left;}else if(cur-_key key){parent cur;cur cur-_right;}else{return false;}}//到这里说明是空cur new Node(key);//链接if(parent-_key key)parent-_left cur;else parent-_right cur;return true;}3、二叉搜索树的删除 首先查找元素是否存在二叉搜索树中如果不存在则返回否则要删除的节点要分以下四种情况 要删除的节点无孩子节点要删除的节点只有左孩子要删除的节点只有右孩子要删除的节点有左右孩子 首先这里可以说是三种情况因为如果没有孩子节点那么就会进入到只有左孩子或者只有右孩子的节点的情况。 bool Erase(const K key){Node* parent nullptr;Node* cur _root;while(cur){if(cur-_key key){parent cur;cur cur-_left;}else if(cur-_key key){parent cur;cur cur-_right;}else{//cur的左为空if(cur-_left nullptr){if(cur _root)_root cur-_right;else{if(cur parent-_left){parent-_left cur-_right;}else if(cur parent-_right){parent-_right cur-_right;}}delete cur;return true; }else if(cur-_right nullptr)// cur-_right为空{if(cur _root)_root cur-_right;else {if(cur parent-_left)parent-_left cur-_left;else if(cur parent-_right)parent-_right cur-_left;}delete cur;return true;}else{//替换法 右数最小节点或者左树最大节点,然后赋值删除最小/最大节点//如果都不为空Node* rightMinParent cur; //这里必须赋值为cur因为如果是头删这里就会有问题Node* rightMin cur-_right;//找右数中最小的值while(rightMin-_left){rightMinParent rightMin;rightMin rightMin-_left;}cur-_key rightMin-_key;//此时rightMin的左子树为空右子树可能有值if(rightMin rightMinParent-_left)rightMinParent-_left rightMin-_right;else rightMinParent-_right rightMin-_right;delete rightMin;return true;}}}return false;}二叉搜索树的性能分析 二叉搜索树的插入和删除操作都需要查找所以查找是二查搜索树中的性能关键。 如果有n个节点的二叉搜索树若每个元素查找的概率相等则二叉搜索树的平均查找长度的关键就在于树的深度。 如果树是一颗二叉平衡搜索二叉树那么查找的效率就是OlogN 当然也有特殊的场景如下图所示它的查找效率就会变得非常慢平均比较次数就达到了ON^2
http://www.zqtcl.cn/news/328894/

相关文章:

  • 微网站和微信广州营销型网站建设团队
  • 企业网站制作托管微信建站网站
  • h5网站如何做排名济南网站建设选聚搜网络
  • 网站建设 手机wordpress 仿煎蛋主题
  • 织梦可以仿所有网站吗电子商务网站建设臧良运课后答案
  • 怎样创建个人购物网站wordpress没有外观
  • 衡水手机网站建设公司计算机大专学历有用吗
  • 有哪些网站做的很好桐乡市建设局官方网站
  • 做公众号和网站一样吗免费正能量网站下载ww
  • 使用帝国做软件下载网站源码顺义区做网站的公司
  • 网站用什么颜色成都网站建设公司服务
  • 重庆手机网站方案设计凡科建站网站怎么保存发给别人
  • 北京住房建设官方网站xampp wordpress服务器
  • 卖衣服的网站建设素材网站免费短视频
  • 萍乡网站建设哪家公司好搜索引擎推广预算
  • 如何做网站不容易被攻击网站定位策划书
  • 自己做网站去哪买服务器多说wordpress
  • 网站排名突然没有了网站开发背景图
  • 比较容易做流量的网站设计模板素材网站
  • 电商网站建设 网站定制开发兰州展柜公司网站建设
  • 临沂城乡建设管理局网站腾讯体育
  • 一个空间怎么放两个网站ps个人网站首页怎么制作
  • 云南通耀建设工程有限公司网站国际购物网站平台有哪些
  • 网站建设外包服务上海网站建设公司怎么分辨好坏
  • 建筑类企业网站模板下载微信搜索推广
  • 上海网站备案在哪里wordpress短链接关键字
  • 金诚财富网站是谁做的建站技术博客
  • 黔东南网站设计公司儿童衣服刘涛做代言那个是什么网站
  • 网站首页样式百度推广是什么工作
  • 广告手机网站制作阿里云域名 设置网站