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

时间:2018-10-25 18:19:15

标签: data-structures stack queue

我实际上正在阅读Skiena的《 Algothm设计手册》,它说有两种类型的数据结构:

•连续分配的结构由单个内存块组成,并且 包括数组,矩阵,堆和哈希表。

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

但是我没有看到Stacks和Queues。连续的还是链接的?

1 个答案:

答案 0 :(得分:1)

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

更具体地说,考虑一个堆栈。您可以选择使用数组表示它,当数组变大时可以使用加倍策略。您可以采用一个整数值来表示堆栈到达的索引,然后您将继续向前移动该整数指针。同样,对于链接列表,您可以选择具有一个表示堆栈的链接列表,并且将具有向后链接,以便可以弹出。