day3
今天学习了数据结构
- 栈
定义:栈是一种线性数据结构,遵循“后进先出”的原则,即最后放入栈中的元素最先被取出。
基本操作:
push(item):将元素压入栈中。
pop():从栈顶弹出元素。
peek():查看栈顶元素,但不移除它。
isEmpty():检查栈是否为空。
实现方式:可以使用数组或链表实现。 - 队列
定义:队列是一种线性数据结构,遵循“先进先出”(FIFO)的原则,即最先放入队列中的元素最先被取出。
基本操作:
enqueue(item):将元素添加到队列的尾部。
dequeue():从队列的头部移除元素。
peek():查看队列头部的元素,但不移除它。
isEmpty():检查队列是否为空。
实现方式:可以使用数组或链表实现。常见的变体有双端队列,支持从两端插入和删除。 - 数组
定义:数组是一种线性数据结构,由一组具有相同类型的元素组成,这些元素在内存中是连续存储的。
基本操作:
访问:通过索引直接访问元素。
修改:通过索引修改元素的值。
插入/删除:在固定大小的数组中,插入或删除元素需要移动其他元素,时间复杂度较高。 - 链表
定义:链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的引用(或指针)。
基本操作:
插入:在链表的指定位置插入新节点。
删除:删除链表中的指定节点。
遍历:访问链表中的每个节点。
类型:
单链表:每个节点只包含指向下一个节点的指针。
双链表:每个节点包含指向下一个节点和上一个节点的指针。
循环链表:最后一个节点指向第一个节点,形成一个环。