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

哪个网站可以做任务31省市新增疫情最新消息

哪个网站可以做任务,31省市新增疫情最新消息,.课程网站建设与应用,苏州注册公司可以用住宅地址吗一、红黑树的迭代器 红黑树的遍历默认为中序遍历 —— key 从小到大,因此 begin() 应该获取到红黑树的最左节点 —— 最小,end() 获取到红黑树最右节点的下一个位置, operator() 也应保证红黑树的遍历为中序的状态。 首先对红黑树节点进行改造…

一、红黑树的迭代器

红黑树的遍历默认为中序遍历 —— key 从小到大,因此 begin() 应该获取到红黑树的最左节点 —— 最小,end() 获取到红黑树最右节点的下一个位置, operator++() 也应保证红黑树的遍历为中序的状态。

首先对红黑树节点进行改造:

引入一个模板参数 T ,使 RBTreeNode / RBTree 成为一个适配器,当我们向 RBTree 中传 key 时,封装 set 容器;向 RBTree 中传 pair<key, value> 时,封装 map 容器。

1.1 定义红黑树的迭代器:
	template<class T, class Ref, class Ptr> // 与 list 迭代器处没有区别,Ref —— T& ,Ptr —— T*struct RBTreeIterator{typedef RBTreeNode<T> Node;typedef RBTreeNodeIterator<T, Ref, Ptr> Self;Node* _node;RBTreeIterator(Node* node):_node(node){}};
1.2 红黑树 operator++()

请务必记住:红黑树迭代器 ++ 为中序遍历 —— 左子树 — 根 — 右子树 !

假设 cur —— 迭代器 已经走到了 key 为 8 的节点 位置,这代表着 key 为 8 的节点 的左子树已经遍历过了key 为 8 的节点 的右子树不为空,则中序遍历 key 为 8 的节点 的右子树

	iterator operator++(){if (_node == nullptr) // 空树,直接返回 空 的迭代器{return iterator(nullptr); }if (_node->_right){Node* subLeft = _node->_right;while (subLeft->_left){subLeft = subLeft->_left;}_node = subLeft;}return *this;}

经过 operator++() 后,cur 到了 key 为 11 的节点 位置,此时 cur->_right 为空,表明以 key 为 11 的节点 为最右节点的子树已经全部遍历过,要去找从根到当前节点的简单路径中,cur 所在子树左子树最近祖宗节点

	iterator operator++(){// ...if (_node->_right){ //... }else {Node* cur = _node;Node* parent = cur->_parent;while (parent && cur != parent->_left) // parent 存在 且 cur所在子树不是parent的左子树时{cur = parent;parent = cur->_parent;}_node = parent;}return *this;}
总结:
  1. 迭代器指向节点的右子树不为空时, operator++() 的下一个位置就是其右子树的最左节点
  2. 迭代器指向节点的右子树为空,意味当前节点所在的左子树已经全部访问完了,operator++() 的下一个位置是当前子树为左子树的最近祖宗节点
1.3 operator*()
	Ref operator*(){return _node->_data;}
1.4 operator->()
	Ptr operator->(){return &(_node->_data);}
http://www.hengruixuexiao.com/news/7939.html

相关文章:

  • 成都集团网站建设信息流推广方式
  • 做h5的网站哪个好营销网络图
  • pmp培训网站性能优化方法
  • 旅游网站的广告预算怎么做seo快速推广
  • 广州模板网站厦门百度公司
  • wordpress小工具文本图标商品关键词优化的方法
  • 上海建溧建设集团有限公司网站百度百科推广联系方式
  • 个人做房产网站有哪些资料nba排名
  • 网站系统安全保护等级是必须做的互联网公司排名100强
  • 数据分析网页如何优化关键词搜索
  • 蓬莱网站设计近三天发生的重要新闻
  • 杭州app定制google关键词排名优化
  • 自己建网站要什么网络营销策划书1000字
  • 银川市建设局网站seo管理工具
  • 桂林网站搭建西安seo专员
  • 网站开发工资淄博看广告赚钱一天50元
  • 做网站需要专业百度秒收录蜘蛛池
  • 2018年静安区品牌网站建设南宁seo规则
  • 内部劵网站怎么做优秀网页设计
  • 做php网站的环境手机网站建设
  • diango是做网站的后端吗网络站点推广的方法
  • 大型网站开发 广州百度搜索推广登录入口
  • 东莞智通人才网招聘win10优化大师怎么样
  • 网站创作规划熊猫关键词挖掘工具
  • 怎样用ps做网站首页图片站长工具友链检测
  • 盐城网站建设百度关键词优化快速排名软件
  • 德州网站开发营销方案范文
  • 东莞凤岗做网站南京网页搜索排名提升
  • 建设网站代办机构中国seo排行榜
  • 国外酷炫网站seo工资服务