第二章 线性表3.17.ppt

第二章 线性表3.17

线性表 数据结构 2 线性表 n个元素的有限序列 线性表的顺序表示和实现 线性表的顺序表示和实现 最好情况 T(n) = O(1) 线性表的顺序表示和实现 思考: 删除操作的时间复杂度是多少? 线性表的顺序表示和实现 特点 各单元的内存地址连续 优点 存储密度大 元素的存储地址可通过一个简单的解析式计算出来 随机存取,访问任一元素所用时间都相同 缺点 插入、删除操作需移动大量元素 算法复杂度 = O(n) 必须预先确定空间 表空间不易扩充 线性表的链式表示和实现 存储结构 线性表的链式表示和实现 为什么要有一个没有数据的头结点? 因为原来的第一个结点有点儿特殊: 第一个结点的前面没有结点(前驱结点) 而其它结点的前面都有前驱结点 这个特殊性导致了链表操作的很多算法都必须分第一个结点和非第一个结点两种情况来讨论 所以增加一个无用的空结点,这样消除了这种不一致,从而简化了算法 头指针具有标识作用,因而常用作链表名字 线性表的链式表示和实现 插入操作的时间复杂度 插入这个过程所需时间为常数 但是找到插入位置的复杂度 = O(n) 所以插入操作的复杂度 = O(n) 线性表的链式表示和实现 5.删除-DELETE(L,i,e) 在线性链表L中,删除第i个结点,并由e返回其值 和插入类似,只需移动几个指针 但也必须先找到待删除的前一个结点 循环链表 循环链表 尾指针指向表头 从链表中任一

文档评论(0)

1亿VIP精品文档

相关文档