Data structures 什么是堆栈和队列、连续或链接的数据结构?

Data structures 什么是堆栈和队列、连续或链接的数据结构?,data-structures,stack,queue,Data Structures,Stack,Queue,我正在阅读skiena的《算法设计手册》,书中说有两种类型的数据结构: •连续分配的结构由单个内存板组成,以及 包括数组、矩阵、堆和哈希表 •链接数据结构由不同的内存块组成 通过指针组合在一起,包括列表、树和图形邻接列表 但我没有看到堆积如山的队伍。连续还是链接?您可以用两种方式实现它们。堆栈和队列是抽象数据类型,而不是数据结构,因此它们只公开接口,而不是实现。例如,可以使用链表或数组实现堆栈。使用堆栈时,您不知道底层实现,而是知道它可以存储哪些数据和不同的访问器 更具体地,考虑一个堆栈。您可以

我正在阅读skiena的《算法设计手册》,书中说有两种类型的数据结构:

•连续分配的结构由单个内存板组成,以及 包括数组、矩阵、堆和哈希表

•链接数据结构由不同的内存块组成 通过指针组合在一起,包括列表、树和图形邻接列表


但我没有看到堆积如山的队伍。连续还是链接?

您可以用两种方式实现它们。堆栈和队列是抽象数据类型,而不是数据结构,因此它们只公开接口,而不是实现。例如,可以使用链表或数组实现堆栈。使用堆栈时,您不知道底层实现,而是知道它可以存储哪些数据和不同的访问器


更具体地,考虑一个堆栈。您可以选择使用数组来表示它,当它变大时,可以使用加倍策略。您可以获取一个表示堆栈达到的索引的整数值,然后继续向前移动该整数值指针。类似地,对于链表,您可以选择一个链表来表示堆栈,您可以使用一个反向链接来弹出。

队列和堆栈也可以被称为抽象数据结构,因此我不会声称队列或堆栈不是数据结构,它没有定义得很好