第1个单元-第2章线性表-顺序表.pptVIP

  • 8
  • 0
  • 约6.66千字
  • 约 34页
  • 2018-09-22 发布于湖北
  • 举报
第1个单元-第2章线性表-顺序表

* 若插入在尾结点之后,则根本无需移动(特别快); 若插入在首结点之前,则表中元素全部后移(特别慢); 若要考虑在各种位置插入(共n+1种可能)的平均移动次数,该如何计算? 算法时间主要耗费在移动元素的操作上 【算法分析】 * 25 12 47 89 36 14 1 2 3 4 5 6 7 8 9 25 12 47 36 14 25 12 47 36 14 25 12 47 36 14 删除 删除(删除第 i 个结点) 删除第 4 个结点,移动 6-4 次 删除第 i 个结点,移动 n-i 次 * (1)判断删除位置i 是否合法(合法值为1≤i≤n)。 (2)将欲删除的元素保留在e中。 (3)将第i+1至第n 位的元素依次向前移动一个位置。 (4)表长减1,删除成功返回OK。 【算法思想】 * 9. 将线性表L中第i个数据元素删除 Status ListDelete_Sq(SqList L,int i,ElemType e){ if((i1)||(iL.length)) return ERROR; //i值不合法 e=L.elem[i-1]; //将欲删除的元素保留在e中 for (j=i;j=L.length-1;j++)    L.elem[j-1]=L.elem[j]; //被删除元素之后的元素前移 --L.length; //表长减1 return OK; } 【算法描述】 * 若删除尾结点,则根本无需移动(特别快); 若删除首结点,则表中n-1个元素全部前移(特别慢); 若要考虑在各种位置删除(共n种可能)的平均移动次数,该如何计算? 算法时间主要耗费在移动元素的操作上 【算法分析】 * 显然,顺序表的空间复杂度S(n)=O(1) (没有占用辅助空间) 查找、插入、删除算法的平均时间复杂度为    O(n) * (1)利用数据元素的存储位置表示线性表中相邻数据元素之间的前后关系,即线性表的逻辑结构与存储结构一致 顺序表(顺序存储结构)的特点  这种存取元素的方法被称为随机存取法 (2)在访问线性表时,可以快速地计算出任何一个数据元素的存储地址。因此可以粗略地认为,访问每个元素所花时间相等  * 顺序表的优缺点 缺点: 在插入、删除某一元素时,需要移动大量元素 浪费存储空间 属于静态存储形式,数据元素的个数不能自由扩充 链表 为克服这一缺点 优点: 存储密度大(结点本身所占存储量/结点结构所占存储量) 可以随机存取表中任一元素 小结 线性表的顺序表示又称为顺序存储结构,顺序存储定义:把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。 顺序表的优缺点 优点:存储密度大(结点本身所占存储量/结点结构所占存储量);可以随机存取表中任一元素 缺点:在插入、删除某一元素时,需要移动大量元素;浪费存储空间;属于静态存储形式,数据元素的个数不能自由扩充。 * * * * * 北京林业大学信息学院 北京林业大学信息学院 北京林业大学信息学院 北京林业大学信息学院 * 数据结构 计算机系 授课人:陈强(副教授) * 第2章 线性表 第3章 栈和队列 第4章 串、数组和广义表 线性结构 若结构是非空有限集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。 可表示为:(a1 , a2 , ……, an) 线性结构的定义: (逻辑、存储和运算) * 线性结构的特点: ① 只有一个首结点和尾结点; ② 除首尾结点外,其他结点只有一个直接前驱和一个直接后继。 线性结构表达式:(a1 , a2 , ……, an) 线性结构包括线性表、堆栈、队列、字符串、数组等等,其中,最典型、最常用的是 线性

文档评论(0)

1亿VIP精品文档

相关文档