【数据结构与算法Python版学习笔记】基本数据结构——概览
目标
- 了解抽象数据类型:栈 stack、队列 queue、双端队列 deque 和列表 list;
- 用 Python 列表数据结构,来实现 stack/queue/deque 抽象数据类型的构建;
- 了解各种基本线性数据结构的性能和使用方法;
- 了解前缀、中缀和后缀表达式;
- 采用栈 stack 对后缀表达式进行求值;
- 采用栈 stack 将中缀表达式转换为后缀表达式;
- 采用队列 queue 进行基本的时间模拟;
- 能够明确问题类型,选用 stack、 queue 或者 deque 中合适的数据结构;
- 能够采用节点和引用模式来将抽象数据类型 list 实现为链表;,
- 能够比较链表和列表的算法性能。
线性数据结构
线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继,除了第一个没有前驱,最后一个没有后继。新的数据项加入到数据集中时,只会加入到原有某个数据项之前或之后。具有这种性质的数据集,就成为线性结构
- 包括:
- 栈 stack
- 队列 queue
- 双端队列 deque
- 列表 list
小结
- 线性数据结构以有序的方式维持它们的数据。
- 栈(Stack)
- 具有后进先出(LIFO)特性的有序的简单数据结构。
- 基本操作是 push, pop 和 isEmpty。
- 对于设计算法并求值以及转化表达式非常有效。
- 前缀表达式,中缀表达式和后缀表达式都是书写表达式的方式
- 具有反转的特性
- 队列(Queue)
- 具有先进先出(FIFO)特性的有序的简单数据结构。
- 基本操作是 enqueue,dequeue 和 isEmpty。
- 可以帮助构建时序仿真。
模拟实验使用随机数生成器来创建一个真实的环境从而使我们回答“假设”类型的问题。
- 双端队列(Deque)
- 允许像栈和队列一样的混合行为的数据结构。
- 基本操作是 addFront, addRear, removeFront, removeRear 和 isEmpty。
- 列表(List)是具有相对位置的元素的集合。
- 链表的实现保持逻辑顺序而不要求数据项依次存放在连续的存储空间。
对链表表头的修改是一种特殊情况。
作者:砥才人
出处:https://www.cnblogs.com/shiroe
本系列文章为笔者整理原创,只发表在博客园上,欢迎分享本文链接,如需转载,请注明出处!