在Swift中使用数据结构

我们都学习了数据结构,并以C / C ++实现。
在这个故事中,我将迅速说明一些使用泛型的基本数据结构。 让我们从堆栈开始。

注意:这个故事只是一个想法,重点在于基础知识。 欢迎提出建议和改进。

什么是堆栈?

我们都知道这是对的! 仅供参考,这是一个简单的例子–

我将定义一个可以推送/弹出任何类型对象的Stack类。 为了方便起见,我假设这些对象将确认为CustomStringConvertible协议(以便我可以打印其描述)

Stack :CustomStringConvertible

这是使用泛型对象T的简单类声明

在单个链接列表中,第一个节点将是开始/根节点,下一个节点将是nil
创建一个班级名称

类LinkList :CustomStringConvertible,其中T:可比较,T:CustomStringConvertible

问:为什么在这里要求可比
答:在搜索特定节点的情况下,我需要比较元素。 因此,为了进行比较,链接列表中的元素符合可比较协议。

如上所示,声明称为startNode的私有节点。

注意:在这里假设理想情况,您可以管理空/零情况

append:此函数将在列表末尾添加元素。 如果链接列表为空,那么将要添加的第一个元素将是起始节点。

insert:此函数将在链接列表的开头添加元素。 如果链接列表为空,那么将要添加的第一个元素将是起始节点。

插入(位置):这会将节点添加到给定位置。

removeFirst:此函数将从头开始删除节点。

removeLast:此函数将在最后删除节点。

remove(position):这将从给定位置移除节点。

搜索:它将根据数据搜索节点并返回其位置。

行使:
1.试用字母链接列表😝。
2.尝试制作双向/圆形链接列表😅

希望您能对如何快速使用泛型和实现基本数据结构有所了解。 我还添加了练习,希望您能进行探索。

如果听起来不错,请在Swift check中选择Binary Search Tree

Swift中的二叉搜索树
从以前的帖子开始: medium.com

快乐编码😃!