Python - 数据结构教程

  • 简述

    计算机以超乎寻常的速度和准确性存储和处理数据。因此,高效存储数据并快速访问数据至关重要。此外,数据的处理应该在尽可能短的时间内进行,但不会失去准确性。
    当程序处理数据时,数据结构处理数据在内存中的组织和保存方式。需要注意的是,作为持久存储(如关系表)的一部分存储在磁盘中的数据在这里不称为数据结构。
    算法是为特定目的逐步处理数据的指令集。因此,算法以逻辑方式利用各种数据结构来解决特定的计算问题。
    在本教程中,我们将使用 Python 编程语言介绍计算机科学的这两个基本概念。
    本教程专为计算机科学专业的毕业生和软件专业人士设计,他们愿意使用 Python 作为编程语言,通过简单易行的步骤学习数据结构和算法编程。
    在继续本教程之前,您应该具备使用 Python 编程语言编写代码、使用任何 Python 集成开发环境 (IDE) 和执行 Python 程序的基本知识。如果您对 python 完全陌生,请参考我们的Python 教程以获得对语言的良好理解。
  • 数据结构概述

    数据结构是计算机科学的基本概念,有助于用任何语言编写高效的程序。Python 是一种高级的、解释性的、交互式的和面向对象的脚本语言,与其他编程语言相比,我们可以使用它以更简单的方式研究数据结构的基础知识。
    在本章中,我们将简要介绍一些常用的数据结构,以及它们与某些特定的 Python 数据类型之间的关系。还有一些特定于 python 的数据结构被列为另一个类别。
  • 通用数据结构

    计算机科学中的各种数据结构大致分为如下所示的两类。我们将在后续章节中详细讨论以下每个数据结构。

    线性数据结构

    这些是以顺序方式存储数据元素的数据结构。
    • Array− 它是与数据元素的索引配对的数据元素的顺序排列。
    • Linked List− 每个数据元素都包含指向另一个元素的链接以及其中存在的数据。
    • Stack− 它是一种仅遵循特定操作顺序的数据结构。LIFO(后进先出)或 FILO(先进后出)。
    • Queue− 与 Stack 类似,但操作顺序仅为 FIFO(先进先出)。
    • Matrix− 它是二维数据结构,其中数据元素由一对索引引用。

    非线性数据结构

    这些数据结构中没有数据元素的顺序链接。任何一对或一组数据元素都可以相互链接,并且可以在没有严格顺序的情况下访问。
    • Binary Tree− 它是一种数据结构,其中每个数据元素最多可以连接到两个其他数据元素,并且从根节点开始。
    • Heap− 这是树数据结构的一种特殊情况,父节点中的数据要么严格大于/等于子节点,要么严格小于其子节点。
    • Hash Table− 它是一种数据结构,由使用哈希函数相互关联的数组组成。它使用键而不是数据元素中的索引来检索值。
    • Graph− 它是顶点和节点的排列,其中一些节点通过链接相互连接。
  • Python 特定的数据结构

    这些数据结构是特定于 python 语言的,它们在存储不同类型的数据和在 python 环境中更快的处理方面提供了更大的灵活性。
    • List− 它类似于数组,只是数据元素可以是不同的数据类型。您可以在 python 列表中同时包含数字和字符串数据。
    • Tuple- 元组类似于列表,但它们是不可变的,这意味着元组中的值不能修改,只能读取。
    • Dictionary− 字典包含键值对作为其数据元素。