logologo

第十一章:数据结构

Apr 23, 2023

数据结构利用了有关的变量的集合,而这些集合能够单独或作为一个整体被访问。

数组

一个变量地址连续的一系列变量。 数组

数组的增删查改的性能

  • 数组的优势是随机存取,在需要存取第 i 个元素的时候可以直接计算出第 i 个元素的地址,进而直接使用地址进行存取。时间复杂度低至 O(1)。

  • 数组的劣势是插入和删除。在需要插入或删除数组中间的元素的时候需要挪动数组的许多后面的元素,使得其时间开销很大。时间复杂度为 O(n)。

记录

可以理解成 C 中的结构体;一个记录可以包括多个不同数据类型的变量。

链表

注:此处讨论的链表为单向链表 链表跟数组一样,也是用来表示一系列数据的。不同的是,链表的地址不一定连续,它在每个元素后面附加上了指向下一个数据的指针。沿着指针,链表也可以实现数组的一些操作,并且在插入和删除的时候性能优于数组。

链表

链表的增删查改的性能

链表的增删查改相对会比数组麻烦一些。

  • 查找数据: 链表的结构决定了链表无法随机存取,只能够实现顺序存取。故其查找第 i 个元素需要从第一个元素开始沿着指针走 i 次才能找到第 i 个元素。时间复杂度为 O(n)。

  • 插入/删除数据:该操作需要先使用查找数据的功能找到需要插入的位置/需要删除的元素。然后只需要 O(1)的操作进行指针的修改就可以实现插入/删除了。

浙ICP备2021022773号    2022-PRESENT © ZhengKe