数组(Array)
定义 数组是一种线性数据结构,用于存储相同类型的数据元素的集合。元素通过索引进行访问,索引通常是连续的整数。
特性 静态大小:一旦定义,数组的大小就不能改变。 顺序存储:元素在内存中是连续存储的。 随机访问:可以通过索引在常数时间内访问任意位置的元素。
操作 访问元素:通过索引访问。 修改元素:通过索引修改。 遍历数组:从头至尾或从尾至头遍历。
应用场景 存储有序的数据集合、实现动态数组、算法实现等。
栈(Stack)
定义 栈是一种后进先出(LIFO)的数据结构,只允许在一端进行插入和删除操作,这一端被称为栈顶。
特性 后进先出:最后压入栈的元素总是最先被弹出。 栈底固定:栈底元素始终是最早入栈的元素,且通常不允许删除。
操作 入栈(push):将元素添加到栈顶。 出栈(pop):从栈顶移除元素,并返回该元素。 查看栈顶(peek):返回栈顶元素的值,但不移除。 判断栈是否为空(isEmpty)。 获取栈的大小(size)。
应用场景 函数调用栈、括号匹配、浏览器历史记录、撤销操作等。
队列(Queue)
定义 队列是一种先进先出(FIFO)的数据结构,只允许在一端进行插入操作(队尾),在另一端进行删除操作(队首)。
特性 先进先出:最先进入队列的元素总是最先被移除。 队列头尾分离:队首元素始终是最早入队的元素,队尾是最新入队的元素。
操作 入队(enqueue):在队尾添加元素。 出队(dequeue):从队首移除元素,并返回该元素。 查看队首(front):返回队首元素的值,但不移除。 判断队列是否为空(isEmpty)。 获取队列的大小(size)。
应用场景 任务队列、打印机队列、消息队列、广度优先搜索(BFS)等。