来自:coursera 北大张铭教授的课程
线性结构
定义
特点
均匀性:统一线性表的各数据元素必定具有相同的数据类型和长度
有序性:各数据元素在线性表中都有自己的位置,且数据元素之间的相对位置是线性的
分类
难易程度划分
简单的:线性表、栈、队列、散列表(索引+检索
高级的:广义表、多维数组(扩展)、文件。。。
按访问方式划分
直接访问型(direct access) 数组
顺序访问型(sequential access)必须在表里面挨个找——链表
目录访问型(directory access)为了加快,自己加了标志——散列表
按操作划分
线性表:
所有的表目都是同一类型节点的线性表
不限制操作形式
根据存储的不同分为顺序表,链表
栈
插入和删除操作都限制在同一段进行——先进后出
队列
一端插入,另一端删除——先进先出
线性结构三要素
逻辑 结构 存储要素
线性表实现方法的比较
优缺点比较
顺序表的主要优点:
没有使用指针,不用花费额外开销
线性表元素的读访问非常便利
链表的主要优点:
无需事先了解线性表的长度
允许线性表的长度动态变化
能够适应经常插入删除内部元素的情况
总结:
顺序表——静态
链表——动态
时间空间比较
顺序表:
插入删除O(n),查找O(1)
链表:
插入删除O(1) 查找O(n)