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

企业网站建设的服务类型有哪些个人推广app的妙招

企业网站建设的服务类型有哪些,个人推广app的妙招,怀化建设局网站,电子商务网站是什么在了解底层封装之前除了对set和map的使用情况要有一定了解#xff0c;还需要先学习一下二叉搜索树#xff0c;AVL树#xff0c;红黑树这些数据结构。 【C】二叉搜索树 【C】AVL树 红黑树 RBTree.h enum Colour {RED,BLACK };templateclass T class RBTreeNo…在了解底层封装之前除了对set和map的使用情况要有一定了解还需要先学习一下二叉搜索树AVL树红黑树这些数据结构。 【C】二叉搜索树 【C】AVL树 红黑树 RBTree.h enum Colour {RED,BLACK };templateclass T class RBTreeNode { public:RBTreeNode(const T data): _data(data), _left(nullptr), _right(nullptr), _parent(nullptr){}T _data;RBTreeNodeT* _left;RBTreeNodeT* _right;RBTreeNodeT* _parent;Colour _col; };templateclass T, class Ref, class Ptr // 红黑树的迭代器实现 class __RBTreeIterator { public:typedef RBTreeNodeT Node;typedef __RBTreeIteratorT, Ref, Ptr Self; public:__RBTreeIterator(Node* node): _node(node){}Ref operator*(){return _node-_data;}Ptr operator-(){return _node-_data;}bool operator!(const Self s) const{return _node ! s._node;}bool operator(const Self s) const{return _node s._node;}Self operator(){// 右子树不为空if (_node-_right){// 就是找右子树的最左节点Node* left _node-_right;while (left-_left){left left-_left;}_node left;}// 右子树为空else{// 就是找不是其右孩子的祖先Node* parent _node-_parent;Node* cur _node;while (parent parent-_right cur){cur cur-_parent;parent parent-_parent;}_node parent;}return *this;}Self operator--(){// 左子树不为空if (_node-_left){// --就是找左子树的最右节点Node* right _node-_left;while (right-_right){right right-_right;}_node right;}// 左子树为空else{// --就是找不是其左孩子的祖先Node* parent _node-_parent;Node* cur _node;while (parent parent-_left cur){cur cur-_parent;parent parent-_parent;}_node parent;}return *this;} public:Node* _node; };// KeyOfT: 用于获取T中的key的一个仿函数类 templateclass K, class T, class KeyOfT class RBTree { private:typedef RBTreeNodeT Node; public:typedef __RBTreeIteratorT, T, T* iterator;RBTree(Node* root nullptr): _root(root){}// begin() 就是找红黑树的最左节点iterator begin(){Node* left _root;while (left left-_left){left left-_left;}return iterator(left);}// 因为迭代器是左闭右开所以end()的迭代器设置为空iterator end(){return iterator(nullptr);}pairiterator, bool Insert(const T data){KeyOfT kot;if (_root nullptr){_root new Node(data);_root-_col BLACK;return make_pair(iterator(_root), true);}Node* parent nullptr;Node* cur _root;while (cur){if (kot(data) kot(cur-_data)){parent cur;cur cur-_right;}else if (kot(data) kot(cur-_data)){parent cur;cur cur-_left;}else{return make_pair(iterator(cur), false);}}cur new Node(data);cur-_col RED;// 保存cur用于返回Node* newnode cur;if (kot(data) kot(parent-_data)){parent-_right cur;}else{parent-_left cur;}cur-_parent parent;while (parent parent-_col RED){Node* grandparent parent-_parent;if (parent grandparent-_left){Node* uncle grandparent-_right;if (uncle uncle-_col RED){parent-_col uncle-_col BLACK;grandparent-_col RED;cur grandparent;parent cur-_parent;}else{if (cur parent-_left){RotateR(grandparent);parent-_col BLACK;grandparent-_col RED;}else{RotateL(parent);RotateR(grandparent);cur-_col BLACK;grandparent-_col RED;}break;}}else{Node* uncle grandparent-_left;if (uncle uncle-_col RED){parent-_col uncle-_col BLACK;grandparent-_col RED;cur grandparent;parent cur-_parent;}else{if (cur parent-_right){RotateL(grandparent);parent-_col BLACK;grandparent-_col RED;}else{RotateR(parent);RotateL(grandparent);cur-_col BLACK;grandparent-_col RED;}break;}}}_root-_col BLACK;return make_pair(iterator(newnode), true);} private:void RotateL(Node* parent){Node* subR parent-_right;Node* subRL subR-_left;parent-_right subRL;if (subRL){subRL-_parent parent;}Node* ppNode parent-_parent;subR-_left parent;parent-_parent subR;if (_root parent){_root subR;subR-_parent nullptr;}else{if (ppNode-_left parent){ppNode-_left subR;}else{ppNode-_right subR;}subR-_parent ppNode;}}void RotateR(Node* parent){Node* subL parent-_left;Node* subLR subL-_right;parent-_left subLR;if (subLR){subLR-_parent parent;}Node* ppNode parent-_parent;subL-_right parent;parent-_parent subL;if (_root parent){_root subL;subL-_parent nullptr;}else{if (ppNode-_left parent){ppNode-_left subL;}else{ppNode-_right subL;}subL-_parent ppNode;}} private:Node* _root; };Set.h #include RBTree.hnamespace zs {templateclass Kclass set{public:class SetKeyOfT{public:const K operator()(const K key){return key;}};typedef typename RBTreeK, K, SetKeyOfT::iterator iterator;iterator begin(){return _t.begin();}iterator end(){return _t.end();}pairiterator, bool insert(const K key){return _t.Insert(key);}private:// set的底层就是一棵红黑树RBTreeK, K, SetKeyOfT _t;}; }Map.h #include RBTree.hnamespace zs {templateclass K, class Vclass map{public:class MapKeyOfT{public:const K operator()(const pairK, V kv){return kv.first;}};typedef typename RBTreeK, pairK,V, MapKeyOfT::iterator iterator;iterator begin(){return _t.begin();}iterator end(){return _t.end();}pairiterator, bool insert(const pairK, V kv){return _t.Insert(kv);}// map支持[]操作V operator[](const K key){pairiterator, bool ret insert(make_pair(key, V()));return ret.first-second;}private:// map的底层就是一棵红黑树RBTreeK, pairK, V, MapKeyOfT _t;};}
http://www.hkea.cn/news/14358477/

相关文章:

  • 北京网站优化常识app模板
  • 奥远科技网站建设流程网站改域名如何做百度优化
  • 建设多语言网站php视频网站开发
  • 网站改版效果图怎么做网站 形象入口页
  • 移动网站建设指南开发平台教程
  • 展示型企业网站例子wordpress 3.7
  • 怎么做微信钓鱼网站做番号类网站违法吗
  • 商城网站制作教程东莞网络做推广公司
  • 网上做调查网站有哪些十大营销手段
  • 资讯类网站源码网站建设平台资讯
  • 做网站用的手机网站制作细节
  • 做调查赚钱的网站济南网站建设第六网建
  • 网站开发人员没有按照设计开发中国大连网站
  • 如何做高端网站沧州纵横人才网
  • 昆明网站建设服务蛋糕店网页设计图片
  • 沈阳网站建设培训学校西安网站建设专家
  • 标志vi设计机构合肥网站关键词优化
  • 东城响应式网站建设济南网站建设tailook
  • 安徽建新建设工程有限公司网站中国书画画廊网站模板
  • 查网站服务器速度企业软文代写
  • 上海资格证报名网站淘宝店铺怎么运营
  • .net 网站生成安装文件目录网络维护是什么专业
  • 手机网站内容管理摄影公司网站
  • 什么网站专做衣服网站404页面模板
  • 鄂尔多斯网站网站建设景安免费虚拟主机
  • 服饰网站 模板深圳招聘网络推广
  • 营销方案网站浏览国外网站 dns
  • 广州专业建设网站地下城做解封任务的网站
  • 最好的书籍设计网站大气的企业网站
  • 网站开发的岗位网站手机模板的特点