矩阵是二维数组的特例,其中每个数据元素的大小相同。因此,每个矩阵也是一个二维数组,但反之则不然。矩阵是许多数学和科学计算中非常重要的数据结构。正如我们在上一章中讨论了二维数组的结构一样,本章我们将重点讨论特定数据矩阵结构的操作。 还可以使用...
在数学上,集合是一组不按特定顺序排列的数据项。 Python 集与此数学定义类似,但具有以下附加条件。 集合中的元素不能重复。 集合中的元素是不可变的(无法更改),但集合作为一个整体是可变的。 添加到 Python 集合中的每个元素都不需...
在某些情况下,无法在连续的内存块中找到用于存储数据的内存分配。因此,请借助包含数据的指针和数据元素旁边的位置的地址。所以下一个数据项的地址是由当前数据项的值决定的。通常这样的系统称为索引。但在 Python 中它们被称为节点。 节点是Py...
链表是一组链接的数据元素。每个数据项都以指针的形式与另一个项存在关系。 Python 没有标准库的链表。我们使用上一章讨论的节点概念来实现链表概念。我们已经知道如何创建节点类以及如何操作节点元素。在本章中,您将了解一种类型的链表:单链表。在...
在英语词典中,堆栈(Stack)的意思是将一个对象放在另一个对象之上。该数据结构中分配内存的方式是相同的。它存储数据元素的方式与厨房中一堆盘子类似:一个放在另一个上面。因此,启用操作的堆栈数据的末尾可以称为堆栈顶部。元素可以添加到堆栈顶部...
在日常生活中,当您等待服务时,您就会熟悉队列。队列数据结构也意味着数据元素排列在队列中。队列的独特性在于添加和删除元素的方式。这些物品可以放置在一端,但可以从另一端移除。所以这是先进先出的方法。队列可以使用 python list 实现,...
Deque(或双端队列)具有从两端添加和删除元素的功能。 Deque 模块是集合库的一部分。它具有添加和删除元素的方法,可以直接使用参数调用。在以下程序中,导入模块collection并声明双端队列。不需要任何类,只需使用这些方法的内置实...
另一种可以通过来回遍历的链表。这种类型的链表称为双向链表。以下是双向链表的属性。 双向链表包含第一个和最后一个链接元素。 每个链接都有一个数据字段和两个名为 next 和 prev 的链接字段。 每个链接都使用下一个链接链接到下一个链接。...
哈希表(也称为哈希表)是一种数据结构,其中其数据元素的地址或索引值由哈希函数生成。这加快了数据访问速度,因为索引值是数据值的关键。换句话说,哈希 表存储键值对,但键是通过 哈希 函数生成的。 这样就加快了数据元素的查找和添加功能,因为键值本...
二叉搜索树 (BST) 是一棵树,其节点都遵循以下属性 - 节点的左子树的键小于或等于它的父节点键。节点右子树的键大于其父节点的键。因此,BST将其所有子树分成两部分;左子树和右子树,可以定义为 - left_subtree (keys)...