"""
线性表的定义分类:
一、定义:具有零个或多个数据元素的有限序列
二、特征:第一个元素没有前驱元素 最后一个元素没有后继元素 其它的元素只有一个前驱元素和一个后继元素
三、操作:插入 删除 查找
四、分类:
1、顺序表:存储结构连续
定义:在计算机的内存中 以一组地址连续的存储单元 依次存储数据元素的线性结构
优缺点:
优点:支持随机访问
缺点:插入删除需要移动大量元素 造成存储空间碎片
在python中的应用:列表/元组
时间复杂度:访问 O(1) 插入删除O(n)
2、链表:逻辑连续 存储结构不连续
定义:常见的数据结构 是一种线性表
分类:单向链表、单向循环链表、双向链表
优缺点:
优点:插入删除方便
缺点:不支持随机访问
时间复杂度:访问O(n) 插入删除O(n)
栈:
栈的定义:只允许在表尾进行插入删除的线性表
特征:后进先出
Stack() 创建一个新的空栈
push(item) 添加一个新的元素item到栈顶
pop() 弹出栈顶元素
peek() 返回栈顶元素
is_empty() 判断栈是否为空
size() 返回栈的元素个数
队列:
只允许在一端插入另一端删除的先进先出的