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

沈阳建站平台新乡网站网站建设

沈阳建站平台,新乡网站网站建设,网页设计图片轮播,网站建设目标及需求目录 资源已上传 实现代码 测试代码 资源已上传 部分图片 实现代码 注意判断是否为红黑树的代码实现#xff0c;实现代码中红黑树的删除 #pragma once #includeiostream using namespace std;enum Color_Type {Red,Black };templateclass K,class V str…目录 资源已上传 实现代码 测试代码 资源已上传 部分图片 实现代码 注意判断是否为红黑树的代码实现实现代码中红黑树的删除 #pragma once #includeiostream using namespace std;enum Color_Type {Red,Black };templateclass K,class V struct RBTreeNode {pairK, V _kv;RBTreeNode* _parent;RBTreeNode* _left;RBTreeNode* _right;Color_Type _color;RBTreeNode(const pairK, V kv): _kv(kv), _parent(nullptr), _left(nullptr), _right(nullptr), _color(Red){}};templateclass K, class V class RBTree {typedef RBTreeNodeK, V Node; private:Node* _root; public:RBTree():_root(nullptr){}bool Insert(const pairK, V kv){if (_root nullptr){_root new Node(kv);_root-_color Black;return true;}Node* cur _root;//指向当前节点的位置Node* parent nullptr;//当前节点的父节点//找到插入位置while (cur){if (cur-_kv.first kv.first) {parent cur;cur cur-_right;}else if (cur-_kv.first kv.first) {parent cur;cur cur-_left;}else {return false;}}cur new Node(kv);cur-_color Red;if (cur-_kv.first parent-_kv.first) {parent-_left cur;cur-_parent parent;}else{parent-_right cur;cur-_parent parent;}//父节点为红色插入后还需做调整while (parent parent-_color Red){Node* grandfather parent-_parent;if (parent grandfather-_left){Node* uncle grandfather-_right;if (uncle uncle-_color Red){// 变色parent-_color uncle-_color Black;grandfather-_color Red;// 继续向上处理cur grandfather;parent cur-_parent;}else//uncle不存在或uncle为黑{if (cur parent-_left){// g// p//crotateR(grandfather);parent-_color Black;grandfather-_color Red;}else{// g//p // crotateL(parent);rotateR(grandfather);cur-_color Black;grandfather-_color Red;}break;}}else{Node* uncle grandfather-_left;// u存在且为红if (uncle uncle-_color Red){// 变色parent-_color uncle-_color Black;grandfather-_color Red;// 继续向上处理cur grandfather;parent cur-_parent;}else{if (cur parent-_right){// g// p// crotateL(grandfather);grandfather-_color Red;parent-_color Black;}else{// g// p// crotateR(parent);rotateL(grandfather);cur-_color Black;grandfather-_color Red;}break;}}}_root-_color Black;return true;}bool IsBalance(){return _IsBalance(_root);}int Height(){return _Height(_root);}bool checkColor(Node* root, int blacknum, int basenum){if (root nullptr){if (blacknum ! basenum){return false;}return true;}if (root-_color Black){blacknum;}if (root-_parent root-_parent-_color Red root-_color Red){cout root-_kv.first 出现连续红色节点 endl;return false;}return checkColor(root-_left, blacknum, basenum) checkColor(root-_right, blacknum, basenum);} private:void rotateL(Node* parent){Node* subR parent-_right;Node* subRL subR-_left;Node* pparent parent-_parent;//1.建立subRL与parent之间的关系//左子树滑动parent-_right subRL;if (subRL) {subRL-_parent parent;}//2.建立subR和parent之间的关系//更新右子树的左子树subR-_left parent;parent-_parent subR;//3.建立pparent和subR之间的关系//与上一个节点建立连接if (parent _root){_root subR;subR-_parent nullptr;}else{subR-_parent pparent;if (parent pparent-_left) {pparent-_left subR;}else {pparent-_right subR;}}}void rotateR(Node* parent){Node* subL parent-_left;Node* subLR subL-_right;Node* pparent parent-_parent;//滑动parent-_left subLR;if (subLR) {subLR-_parent parent;}//更新左子树的右子树subL-_right parent;parent-_parent subL;if (parent _root) {_root subL;subL-_parent nullptr;}else {subL-_parent pparent;if (parent pparent-_left) {pparent-_left subL;}else {pparent-_right subL;}}}int _Height(Node* root){if (!root) {return 0;}int left _Height(root-_left);int right _Height(root-_right);return left right ? left 1 : right 1;}bool _IsBalance(Node* root){if (root nullptr){return true;}if (root-_color ! Black){return false;}int basenum 0;Node* cur _root;while (cur){if (cur-_color Black) {basenum;}cur cur-_left;}return checkColor(root, 0, basenum);}}; 测试代码 #include RB_tree.h #includevectorint main() {const int N 10;vectorint v;v.reserve(N);srand(time(0));for (size_t i 0; i N; i){v.push_back(i);}for (auto i : v){cout i ;}cout endl;RBTreeint, int rbt;for (auto e : v){rbt.Insert(make_pair(e, e));cout Insert: e endl;}cout rbt.Height() endl;if (rbt.IsBalance()){cout ok endl;}return 0; }
http://www.hkea.cn/news/14535341/

相关文章:

  • 网站建设与管理习题一惠州手工活外发加工网
  • 缪斯设计网站网店设计流程
  • 北京做网站比较有名的公司有哪些网站keywords多少字
  • 建设银行网站用户名忘了怎么办网站恶意刷新
  • 请多记几个本站域名防止失联企业注册地址查询
  • 网站开发数据库技术抖音代运营服务协议
  • 用境外服务器做网站搜索引擎优化的主要手段
  • 建设大型购物网站阿里云多网站建设
  • 网站优化心得怎么推广我做的网站
  • 浅谈博物馆网站的建设意义信誉好的丹徒网站建设
  • 郑州鹏之信网站建设wordpress支持PHP吗
  • 后台模板链接前台网站百度下载app
  • 网站建设的基本原则php访问网站
  • 陕西网站建设企业学电商设计大概多少钱
  • wordpress的站点是什么建个公司网站怎么弄
  • 哪个网站可以直接做ppt做本地化的返利网站怎么样
  • 网站没有备案信息该怎么做阿里巴巴集团控股有限公司
  • wordpress去除顶部网站建设公司十年乐云seo
  • 网站页面seo注册域名多长时间
  • python做公司网站遵义市网站建设
  • 北京建网站公司价格怎样做运营一个网站
  • 电商网站建设系统美篇在哪个网站做的
  • 大学生做网站类型网站美工做专题尺寸多少?
  • 怎么创建个网站商业空间设计ppt分析
  • 佛山网站设计培训订票网站模板
  • 博罗网站开发广告软文营销平台
  • 做字体网站做网站需要多少固定带宽
  • js网站特效阜阳手机网站制作
  • 在线支付的网站怎么做上海闵行区怎么样
  • 网站建设公司发展建议wordpress前端用户插件