第四讲-顺序表的简单应用详解.ppt_第1页
第四讲-顺序表的简单应用详解.ppt_第2页
第四讲-顺序表的简单应用详解.ppt_第3页
第四讲-顺序表的简单应用详解.ppt_第4页
第四讲-顺序表的简单应用详解.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/7/28,滨州学院信息工程系,1,第二章 线性表,顺序表的简单应用,2020/7/28,2,复习,#define LIST_INIT_SIZE 100 / 线性表存储空间的初始分配量 typedef struct ElemType *elem; /存放线性表的数组空间基地址 int length; / 当前长度 int listsize; / 当前分配的容量 SqList; / 顺序表,2020/7/28,3,顺序表的应用实例,例1 顺序结构线性表LA与LB的结点关键字为整数。LA与LB的元素按非递减有序,线性表空间足够大。 试用类C语言给出一种高效算法,将LB中元素合到LA中,使新

2、的LA的元素仍保持非递减有序。高效指最大限度的避免移动元素。,2020/7/28,4,void Union(SqList ,2020/7/28,5,例2 请写一个算法将顺序存储结构的线性表(a1.an)逆置为(an.a1),2020/7/28,6,顺序存储结构的线性表的逆置,只需一个变量辅助空间。算法核心是选择循环控制变量的初值和终值。 void SeqInvert(SqList j = n-1; i, j 初始值为a的第1个和第n个元素下标 t = a0; 暂存枢轴元素。 while( i=0) j-; 若当前元素为大于等于零,则指针前移。 if( ij ) ai+ = aj; 找到负数将其

3、前移。 while(ij 将原第一元素放到最终位置。 ,算法讨论 本算法时间复杂度为O(n)。算法只是按题目要求把正负数分开,题目并未提及零的问题,将零放到了正数一边。对此问题的扩充是若元素包含正数、负数和零,并要求按负数、零、正数的顺序重排线性表,统计负数、零、正数的个数。,2020/7/28,12,2020/7/28,13,例5 已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。(O(1)表示算法的辅助空间为常量)。 【北京航空航天大学 2000 五(10分)】,题目分析 在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。因此可以考虑设头尾两个指针(i=0,j=n-1),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。,2020/7/28,14,2020/7/28,15,void Delete(SqList 算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论