{学习笔记}[数据 结构之线性结构]

来源:互联网 发布:sql update 更新多行 编辑:程序博客网 时间:2024/06/02 02:22

来自:coursera 北大张铭教授的课程

线性结构

定义

特点

均匀性:统一线性表的各数据元素必定具有相同的数据类型和长度
有序性:各数据元素在线性表中都有自己的位置,且数据元素之间的相对位置是线性的

分类

难易程度划分

简单的:线性表、栈、队列、散列表(索引+检索
高级的:广义表、多维数组(扩展)、文件。。。

按访问方式划分

直接访问型(direct access) 数组
顺序访问型(sequential access)必须在表里面挨个找——链表
目录访问型(directory access)为了加快,自己加了标志——散列表

按操作划分

线性表:

所有的表目都是同一类型节点的线性表
不限制操作形式
根据存储的不同分为顺序表,链表

插入和删除操作都限制在同一段进行——先进后出

队列

一端插入,另一端删除——先进先出

线性结构三要素

逻辑 结构 存储要素

线性表实现方法的比较

优缺点比较

顺序表的主要优点:

没有使用指针,不用花费额外开销
线性表元素的读访问非常便利
链表的主要优点:
无需事先了解线性表的长度
允许线性表的长度动态变化
能够适应经常插入删除内部元素的情况
总结:
顺序表——静态
链表——动态

时间空间比较

顺序表:
插入删除O(n),查找O(1)
链表:
插入删除O(1) 查找O(n)

0 0