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

织梦做的网站打开不是饮品店网站模板

织梦做的网站打开不是,饮品店网站模板,计算机软件开发难学吗,dyndns如何申请免费域名个人主页#xff1a;仍有未知等待探索-CSDN博客 专题分栏#xff1a;C 目录 一、概念 性质 二、操作 插入 情况一#xff1a;cur为红、p为红、g为黑#xff0c;如果u存在且为红 步骤#xff1a; 情况二#xff1a;cur为红、p为红、g为黑#xff0c;如果u不存在或… 个人主页仍有未知等待探索-CSDN博客 专题分栏C 目录 一、概念 性质 二、操作  插入 情况一cur为红、p为红、g为黑如果u存在且为红 步骤 情况二cur为红、p为红、g为黑如果u不存在或者u存在且为黑  情况a步骤 情况b步骤 情况三cur为红、p为红、g为黑如果u不存在或者u存在且为黑  步骤 三、总代码 一、概念 红黑树是一颗特殊的二叉搜索树。红黑树虽然不要求是平衡的但是该树的最长路径不超过最短路径的二倍。 红黑树避免了过多的旋转问题。 性质 1、每个节点的颜色不是红色就是黑色。 2、根节点的颜色是黑色。 3、如果一个节点的颜色是红色则该节点的左右孩子节点都是黑色。 4、对于每个结点从该结点到其所有后代叶结点的简单路径上均 包含相同数目的黑色结点。 5、每个叶子节点这里的叶子节点指的是null节点的颜色都是黑色的。 二、操作  插入 插入一个新节点之后会遇到几种情况需要我们自己对红黑树进行调整来保证其性质的正确。 新插入节点的颜色为红色。如果为黑色的话性质4可能会不满足相较于性质3来说调整起来会比较麻烦。 情况一cur为红、p为红、g为黑如果u存在且为红 步骤 将 p、u 变成黑色g 变成红色。如果 g 为整个树的根节点则将 g 变成黑色。如果 g 不是根节点且双亲结点为红色的话继续向上进行变换。如果 g 不是根节点且双亲结点为黑色的话则结束。 情况二cur为红、p为红、g为黑如果u不存在或者u存在且为黑  对于这个情况二还有两种不同的情况。注p 节点一定是 cur 节点的双亲结点。 情况acur 为 p 的左孩子p 为 g 的左孩子。 情况bcur 为 p 的右孩子、p 为 g 的右孩子。 情况a步骤 将 p 变成黑色g 变成红色。以 g 为旋转点进行右单旋。 情况b步骤 将 p 变成黑色g 变成红色。然后以 g 为旋转点进行左单旋。 另外一种情况u 不存在就需要自己去琢磨咯。 情况三cur为红、p为红、g为黑如果u不存在或者u存在且为黑  情况三是情况二的补充。对于情况二我们只讲了上述的两种情况。剩余的情况则在这里进行解释。 情况acur 为 p 的左孩子p 为 g 的右孩子。 情况bcur 为 p 的右孩子、p 为 g 的左孩子。 对于上述情况想必大概也能猜测出来这种情况要对红黑树进行双旋处理了。这里仅对情况a 且 u 存在进行画图分析。 步骤 先以 p 为旋转点进行右单旋然后再以 g 为旋转点进行左单旋。然后将 cur 变成黑色g 变成红色。 三、总代码 #include iostream #include assert.h #include vector using namespace std;enum color {Red,Black }; template class K, class V struct RBTreeNode {typedef pairK, V PKV;RBTreeNode(const PKV e PKV()):_left(nullptr),_right(nullptr),_parent(nullptr),_col(Red),_val(e){}struct RBTreeNodeK, V* _left;struct RBTreeNodeK, V* _right;struct RBTreeNodeK, V* _parent;int _col;PKV _val; };templateclass K, class V class RBTree { public:typedef RBTreeNodeK, V node;typedef pairK, V PKV;RBTree():_root(nullptr){}void insert(const PKV e){// 根据二叉搜索树插入的方式进行插入node* cur _root;node* parent cur;while (cur){parent cur;if (cur-_val.first e.first){cur cur-_left;}else{cur cur-_right;}}cur new node(e);if (parent nullptr){_root cur;}else{if (parent-_val.first cur-_val.first){parent-_left cur;}else{parent-_right cur;}cur-_parent parent;}// 更新对于不同的情况进行不同的调整// parent 为黑、不存在结束node* p parent;while (p p-_col Red){node* g p-_parent;if (g-_left p){node* u g-_right;// 叔叔存在且为红if (u u-_col Red){p-_col u-_col Black;g-_col Red;// 继续往上处理cur g;p cur-_parent;}// 叔叔不存在且为黑else {// g// p u// cif (cur p-_left){// 右单旋RotateR(g);// 变色g-_col Red;p-_col Black;}// g// p u// celse {// 左右双旋RotateL(p);RotateR(g);// 变色cur-_col Black;g-_col Red;}// 叔叔不存在或者存在且为黑调整完就不需要继续进行调整了break;}}else{node* u g-_left;if (u u-_col Red){p-_col u-_col Black;g-_col Red;// 继续往上处理cur g;p cur-_parent;}else {// g// u p// cif (cur p-_right){// 左单旋RotateL(g);// 变色g-_col Red;p-_col Black;}// g// u p// celse {// 左右双旋RotateR(p);RotateL(g);// 变色cur-_col Black;g-_col Red;}// 叔叔不存在或者存在且为黑调整完就不需要继续进行调整了break;}}}_root-_col Black;}void inorder(){_inorder(_root);} private:void _inorder(node* root){if (root nullptr) return;_inorder(root-_left);cout root-_val.first ;_inorder(root-_right);}void RotateR(node* parent){node* subl parent-_left;node* sublr subl-_right;node* grandfather parent-_parent;parent-_left sublr;if (sublr){sublr-_parent parent;}subl-_right parent;parent-_parent subl;subl -_parent grandfather;if (_root parent){if (grandfather-_left parent){grandfather-_left subl;}else{grandfather-_right subl;}}else{_root subl;}}void RotateL(node* parent){node* subr parent-_right;node* subrl subr-_left;node* grandfather parent-_parent;parent-_right subrl;if (subrl){subrl-_parent parent;}subr-_left parent;parent-_parent subr;subr -_parent grandfather;if (_root ! parent){if (grandfather-_left parent){grandfather-_left subr;}else{grandfather-_right subr;}}else{_root subr;}}protected:node* _root; };
http://www.dnsts.com.cn/news/130084.html

相关文章:

  • 推荐个2021能看的网站如何建网站运营网站
  • 做k线图网站微信开放平台怎么申请
  • 电商网站设计公司只选亿企邦网络营销ppt模板
  • 江津网站建设公司江苏网站开发电话
  • 专业行业网站开发报价长沙市网站推广哪家专业
  • wordpress建不了网站论坛网页设计
  • pdf 网站建设搜索引擎的优化和推广
  • 个人性质的网站 备注怎么写集团公司网站源码
  • 网站建设属于哪种公司网站充值怎么做分录
  • 设计师怎么弄个人网站建设网站加推广
  • 耳机 东莞网站建设专门做电子书的网站有哪些
  • 济南企业网站建设哪家好百度经验官网
  • 海东高端网站建设学校网站建设钉钉
  • 做网站page学校网站内容建设方案
  • 晋州网站建设哪家好域名注册网站
  • 青原区城乡建设局门户网站重庆网站首页制作
  • 网站统计访客数量怎么做logo设计素材图片
  • 阿里巴巴做网站电工学高等教育出版社久久建筑网
  • 微信网站建设 知乎网站项目策划书内容模板
  • 一般的网站需要多大的空间做租号玩网站赚钱吗
  • 珠海建网站厦门制作公司网站哪家好
  • 导航网站的好处垦利县企业型网站建设
  • 做网站一年要多少钱怎么看网站有没有被k
  • 网站怎么做数据接口精简网站模板
  • 网站流量监控怎么做共享门店新增跑腿距离计算优化
  • 建设工程中标查询网站表格如何给网站做链接地址
  • 重庆网站建设设计wordpress导航栏不见了
  • 上海家装设计网站关于加强企业门户网站建设通知
  • 网站背景图片切换上海市各区建设局网站
  • 上海最专业的网站建设公司哪家好七台河新闻联播