数据结构之栈、队列和数组的基本概念

33 阅读2分钟

数组(Array)

数组是一种线性数据结构,它包含一系列相同类型的元素,这些元素在内存中连续存储。数组的每个元素都有一个唯一的索引,用于访问该元素。索引通常从0开始,但也有例外,如某些编程语言可能从1开始。

数组的特性: 长度固定:一旦数组被创建,其大小就不能改变。 连续存储:数组中的元素在内存中连续存储,可以通过索引直接访问。 可通过索引快速访问元素:访问数组中的元素的时间复杂度是O(1)。

栈(Stack)

栈是一种后进先出(LIFO, Last In First Out)的数据结构。它只允许在一端进行插入和删除操作,这一端通常被称为栈顶(top)。栈底(bottom)是栈的另一端,元素在栈底保持不动。

栈的基本操作:

push(element):向栈顶添加元素。
pop():从栈顶删除元素,并返回该元素。
peek() 或 top():返回栈顶元素,但不删除它。
isEmpty():检查栈是否为空。

队列(Queue)

队列是一种先进先出(FIFO, First In First Out)的数据结构。它有两个端点:队头(front)和队尾(rear)。新元素总是添加到队尾,而读取元素则始终从队头开始。

队列的基本操作:

enqueue(element):在队尾添加一个元素。
dequeue():从队头删除一个元素,并返回该元素。
front():返回队头元素,但不删除它。
rear():返回队尾元素,但不删除它(注意:不是所有队列实现都提供此操作)。
isEmpty():检查队列是否为空。

总结

数组:固定长度的连续存储结构,可通过索引快速访问元素。

栈:后进先出的数据结构,只允许在一端进行插入和删除操作。

队列:先进先出的数据结构,有两个端点,新元素在队尾添加,旧元素从队头删除。