搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
IT小白
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
python 基础学习 总结 第一天_a,b=int(input().split())
2
AndroidStudio常用快捷键,有效提高工作效率_android studio 快速返回值快捷键
3
用Python连接操作MySQL数据库,做一个简单的用户登录注册系统_python操作mysql制作数据库系统
4
NLP实战之基于sklearn和基于spark的中文文本分类_sklearn nlp
5
中专学渣上岸内蒙古大学计算机专硕考研经验分享_849c语言程序设计专硕难吗
6
Linux内核详解,什么是linux内核?
7
【2024最新】我把面试问烂了的Web安全集合总结了一下(带答案)建议收藏_web应用安全实操题(1)
8
学成在线day13 支付通知,2024年最新讲的明明白白
9
知识分享系列二:云原生技术_容器云原生技术
10
某程序员揭秘“开水团”大厂真实福利:工位拥挤,没有食堂!公司防员工跟防贼一样,特别是纸巾和插排都粘到桌子上!...
当前位置:
article
> 正文
C++数据结构——二叉搜索树迭代器的实现_c++树的迭代器实现
作者:IT小白 | 2024-05-14 17:29:08
赞
踩
c++树的迭代器实现
1.二叉搜索树迭代器的中序遍历
2.迭代器的++指向中序遍历的下一个节点
*如果右子树不空,则移动到右子树,并沿着左边向下,直到当前节点的左指针为空,例如12的下一节点14
*如果右子树为空,则沿着父指针链向上查找,直到找到以当前节点作为左子结点的父节点,例如23的下一节点25
特殊情况:
(1)沿着父指针链向上查找,最终父节点为空,说明迭代器指向的是最后一个节点,直接返回end()
(2)迭代器本身是end().
3.迭代器的--与++类似
*如果左子树不空,则移动到左子树,并沿着右边向下,直到当前节点的右指针为空,例如25的前驱23
*如果左子树为空,则沿着父指针链向上查找,直到找到一当前节点作为右节点的父节点,例如14的前驱节点12
特殊情况:
(1)沿着父指针链向上查找,最终父节点为空,说明迭代器指向的是第一个节点,直接返回end()
(2)迭代器本身是begin(),此时返回最后一个节点
实现代码:
node.h
#ifndef node_H
#define node_H
template<typename T>
class node
{
public:
node<T> *parent;
//父节点指针
node<T> *left;
//左节点指针
node<T> *right;
//右节点指针
T val;
//节点值
node():parent(nullptr),left(nullptr),right(nullptr){}
node(T v, node<T> *p=nullptr, node<T> *l=nullptr, node<T> *r=nullptr):val(v),parent(p),left(l),right(r){}
};
#endif
myIterator.h
#ifndef myIterator_H
#define myIterator_H
#include"node.h"
class myIterator
{
friend class bs_Tree<T>;
private:
node<T> *curr;
//迭代器指向的当前指针
bs_Tree<T> *obj;
//迭代器所在的对象
myIterator(node<T> *c, bs_Tree<T> *o):curr(c),obj(o){}
//查找按中序遍历时的第一个节点
node<T>* findLeftFirst(node<T>* root)
{
node<T> *temp=root;
while(temp->left)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/IT小白/article/detail/569394
推荐阅读
article
数据结构
Java
数据结构
---
二叉树
_
数据结构
java
构造
二叉树
...
二叉树
1. 树形结构1.1 概念树是一种非线性的
数据结构
,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它...
赞
踩
article
【
数据结构
】有关
环形
链表
题目
的
总结...
如果有环
的
话,创建两个指针,一个指针从head节点开始,另一个指针从相遇点meet开始,两个指针每次都走一步,两个指针相...
赞
踩
article
《
数据结构
》
C语言
版 (清华严蔚敏考研版
)
第三章
栈
和
队列
栈
相关知识梳理与总结...
栈
(stack
)
是只允许一端进行插入
和
删除的线性表
栈
是一种特殊的线性
数据结构
,仅支持在一个位置进行添加元素(称为“入
栈
”...
赞
踩
article
数据结构
(
Python
版):
线性表
_
线性表
的
增删改查
python
...
2.
线性表
(线性
数据结构
)线性结构是一种有序数据项
的
集合,其中每个数据项都有唯一
的
前驱和后继。除了第一个没有前驱,最后...
赞
踩
article
【
数据结构
】
线性表
的
python
实现_已知
两个
线性表
a
=
{1
,
5
,
6
,
9} 编写
python
程序将两...
'''@Project:
线性表
的操作:
合并
线性表
,
合并
有序表@D
a
te:2021/6/15'''#
合并
线性表
fl
a
g
=
...
赞
踩
article
数据结构
:
线性表
(
Python
实现
基本操作
)_
python
线性表
语法...
目录简介顺序结构顺序表链式结构单链表循环链表双向循环链表简介
线性表
:
n 个数据元素的有限序列。是一种常见的线性结构。线性...
赞
踩
article
数据结构
二叉树
各种基本
运算
的
实现_
二叉树
的
基本
运算
数据结构
...
数据结构
二叉树
各种基本
运算
的
实现#include<stdio.h>#include&...
赞
踩
article
数据结构
——
链表
(
精简易懂版
)
...
1,
链表
(
Linked List
)
是一种常见的
数据结构
,用于存储一系列元素。它由一系列节点
(
Node
)
组成,每个节点包含...
赞
踩
article
算法学习
Day1
——【
数据结构
】
单调
栈
...
顾名思义,
单调
栈
是一个的
栈
,可能从
栈
顶到
栈
底,也有可能从
栈
顶到
栈
底
单调
递减(
单调
递减
栈
)。算法学习
Day1
——【
数据结构
...
赞
踩
article
数据
结构
(
线性
结构
:
单链
表)...
单链
表基本操作数据
结构
(
线性
结构
:
单链
表) 上一篇博客讲解了数据
结构
中的
线性
结构
的一个最简单的结...
赞
踩
article
[
数据结构
]——
非
递归
排序
总结——笔试爱考...
创建一个栈ST,并初始化为空。将结束索引end和开始索引开始依次入栈ST。进入循环,直到栈ST为空: a. 从栈ST中弹...
赞
踩
article
数据结构
——
AVL
树
_avl
树
树
的
高度
...
AVL
算法前言这篇文章主要是基于BST算法的衍生版本,因为在某些情况下,BST算法的时间复杂度会退化成O(n),所以才有...
赞
踩
article
【
数据结构
】之
树
的
定义
_
数据结构
树
的
定义
...
定义
定义
:
树
(Tree)是n(n>=0)个结点
的
有限集。n=0时称为空
树
。在任意一颗非空
树
中:(1)有且仅有一个特定
的
称...
赞
踩
article
数据结构
--
树
_
数据结构
树
...
一、
树
的概念这是一颗大自然的
树
这是
数据结构
中的
树
二者看起来是如此的相像,现实中的
树
是根在地上,枝干往上长,叶子在整颗
树
的...
赞
踩
article
数据结构
-
树
(大话
数据结构
笔记)_语法
树
为什么
不会醉在
只有
左子
树
没有
右子
树
的情况...
个人
数据结构
-
树
的笔记_语法
树
为什么
不会醉在
只有
左子
树
没有
右子
树
的情况语法
树
为什么
不会醉在
只有
左子
树
没有
右子
树
的情况 ...
赞
踩
article
数据结构
二叉
树
的
定义和性质 C语言_什么是
左子
树
和
右子
树
...
原创作者:小林1.
二叉
树
的
定义:
二叉
树
是每个结点最多有两个子
树
的
树
结构根节点:一棵
树
最上面
的
节点称为根节点。左
右子
树
:某...
赞
踩
article
数据结构
(
一
)
--
树
_
树
边
的
集合
怎么看...
目录
树
的
定义二叉查找
树
AVL
树
单旋转双旋转伸展
树
展开java中
树
的
应用
树
的
定义什么是
树
:
一
棵
树
是
一
些节点
的
集合
。这个集...
赞
踩
article
【
数据结构
】_
在
任意一棵
二叉树
中,树叶
的
数目
比
度数
为2
的
数目
多1...
递归:
在
函数内部调用自己,递归函数
的
设计主要就是要考虑清空结束条件eg:求n!
的
递归实现_
在
任意一棵
二叉树
中,树叶
的
数目
...
赞
踩
article
【
数据结构
--
二叉
树
】_
二叉
树
的左子
树
...
文章目录
树
的定义和基本性质
树
的定义
树
的特点
树
的基本术语
二叉
树
二叉
树
的定义
二叉
树
的特点特殊
二叉
树
二叉
树
的性质
二叉
树
的代码实...
赞
踩
article
数据结构
:
二叉
树
基础入门_
二叉
树
的
左子
树
和
右子
树
...
定义
二叉
树
由一个根节点和两个互不相交
的
、分别称为根节点
的
左子
树
和
右子
树
的
二叉
树
组成。
二叉
树
种类满
二叉
树
对于一棵
二叉
树
,如...
赞
踩
相关标签
数据结构
java
b树
二叉树
c++
算法
考研
链表
python
单链表
学习
开发语言
非递归