不使用 C++ STL 容器实现集合28 Aug 2024 | 5 分钟阅读 集合定义为元素的集合,其中每个元素都是唯一的。它与数组不同,因为集合可以有可变长度。一旦添加到集合中的元素不能更改。如果我们要添加相同的修改后的数字,请删除该数字并在集合中添加修改后的数字。 以下是对集合可以执行的操作:
使用 BST 实现集合集合数据结构内部实现 BST(二叉搜索树)数据结构。因此,我们将在树中添加元素,并使用此树模板来实现集合。
在树中,我们有三个成员 - 节点的数据以及指向节点的左指针和右指针。如下所示 - 创建树后,我们使用 insert() 函数将节点插入树中。在 BST 中,小于根的数据位于树的左侧,而大于根的数据位于树的右侧。 containsNode() 函数用于检查节点是否存在于树中。 inorder() 函数用于打印 BST 的中序遍历。
在为集合的内部工作创建 BST 后,将创建一个集合模板来实现 BST。它有一个根指针节点来存储数据,并且 size 变量返回集合的大小。 Set 类有一个默认构造函数将 BST 的根初始化为 NULL,还有一个复制构造函数将一个集合复制到另一个集合。 add() 函数用于向集合中添加值。它通过调用 containsNode() 函数不向集合中添加重复数据。如果有新元素,则将其添加到集合中。 contains() 函数检查特定元素是否存在于集合中。它在内部调用 BST 中的 containsNode()。 displaySet() 函数用于打印集合元素。它在内部调用 BST 的 inorder() 函数。 getSize() 函数返回集合的大小。 编码 输出 A = { 1 2 3 } A contains 3 A does not contain 4 下一个主题C++ 中的作用域解析运算符 |
C++ 计时器是一种用于测量时间间隔、跟踪操作持续时间或在程序中创建延迟的机制。计时器可用于各种目的,例如实现基于时间的函数、控制动画、测量算法的执行时间以及管理任务...
阅读 3 分钟
C++ 中的输出运算符用符号表示,用于将数据输出到标准输出流,通常是控制台。它通常与 std::cout 流对象一起使用,以在屏幕上显示数据。包括众多平台……
阅读 6 分钟
C++ 编程中的一个关键思想是指针的概念,它使程序员能够有效地处理数据结构和修改内存地址。在众多指针类型中,对象指针尤其重要,因为它们使处理存储的对象更加容易...
11 分钟阅读
在 C++11 中,引入的一个重要特性是可以使用函数的尾随返回类型。在 C++11 之前,函数的返回类型必须在函数名之前指定。但是,尾随返回类型允许您指定返回...
阅读 4 分钟
在计算机科学中,排序算法经常用于以特定顺序排列数据。有许多种排序算法,每种算法都有其自身的优点和缺点。希尔排序是最常用的排序算法之一,有时也称为...
阅读 4 分钟
在 C++ 中添加两个数字是一项基本操作,并且是许多更复杂的算术运算的基础。它在许多方面都很重要。首先,两个数字相加是一项基本的数学运算,在日常生活中被用作……
阅读 3 分钟
编程中的基本思想之一是弄清楚给定的数字是奇数还是偶数。对于许多算法和应用程序,它充当了基础。编写一个 C++ 程序来确定一个数字是奇数还是偶数将……
阅读 6 分钟
名为 std::auto_ptr 的智能指针在 C++98 中被添加到 C++ 中,用于控制动态分配对象的内存分配。它旨在为动态分配的对象提供自动内存管理,并且是 C++ 标准库的一部分。但是,std::auto_ptr 已在 C++11 中弃用...
阅读 3 分钟
介绍:C++ 面向对象编程的关键组件之一是数据隐藏,它使我们能够隐藏内部对象特性,例如数据成员,并禁止程序函数直接访问对象的内部表示、数据成员和成员函数。访问修饰符定义了限制...
11 分钟阅读
简介:闰年是公历中比通常的 365 天多一天(2 月 29 日)的长日历年,因此共有 366 天。为了保持与地球绕太阳运行的同步,每四年会增加一个闰年……
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India