数据结构第二章线性表课程介绍.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 线性表 张莉 tasummer@ 内 容 线性结构 线性表 线性表的顺序表示和实现 线性表的链式表示和实现 一元多项式的表示及相加 例4、学生健康情况登记表如下: 数据的运算是定义在逻辑结构上, 而运算的具体实现则是在存储结构上进行。 线性表的存储结构 定长的一维数组结构 又称为向量型的顺序存储结构 变长的线性表存储结构 链接式存储结构 串结构、动态数组、以及顺序文件 2.3 线性表的顺序表示和实现 2.顺序存储结构的特点: 逻辑结构与存储结构(物理结构)一致; 随机(直接)存取法:访问每个数据元素所花费的时间相等。 2. 销毁线性表L void DestroyList(SQ_LIST *L) { if (L-item) free(L-item); //释放线性表占据的所有存储空间 } 3. 清空线性表L void ClearList(SQ_LIST *L) { L-length=0; //将线性表的长度置为0 } 4. 求线性表L的长度 int GetLength(SQ_LIST L) { return (L.length); } 5. 判断线性表L是否为空 Status ListEmpty(SQ_LIST L) { if (L.length==0) return TRUE; else return FALSE; } 6. 获取线性表L中的某个数据元素的内容 Status GetElem(SQ_LIST L,int i,ElemType *e) { if (i1||iL.length) return ERROR; //判断i值是否合理,若不合理,返回ERROR *e=L.item[i-1]; //数组中第i-1的单元存储着线性表中第i个数据元素的内容 return OK; } 7. 在线性表L中检索值为e的数据元素 int LocateELem(SQ_LIST L,ElemType e) { for (i=0;i L.length;i++) if (L.item[i]==e) return i+1; return 0; } 8. 在线性表L中第i个数据元素之前插入数据元素e int ListInsert(SQ_LIST *L,int i,ElemType e) {if(L-length=ListSize return ERROR; if (i1||iL-length+1) return ERROR; for(j=L-length-1;j=i-1;i++) L-item[j+1]=L-item[j]; L-item[i-1]=e; L-length++; return OK; } 9. 将线性表L中第i个数据元素删除 Status ListDelete(SQ_LIST *L,int i,ElemType *e) { if (ListEmpty(L)) return ERROR; if (i1||iL-length) return ERROR; *e=L-item[i-1]; for (j=i;j=L-length-1;j++) L-item[j-1]=L-item[j]; L-length--; return OK; } 作 业 1.已知一个顺序表A,其中的元素按值递减有序排列,编写一个函数插入一个元素x后保持该顺序表仍按递减有序排列。 2.已知一个顺序表中的元素按元素值递减有序排列,编写一个函数删除顺序表中相同的元素; 3.编写一个函数将一个顺序表A(有n个元素,且任何元素均不为0)分拆成两个顺序表,使A中大于0的元素存在B中,小于0的元素存放在C中。 4.有两个顺序表A(有m个元素)和B(有n个元素),其元素均以升序排列,编写一个函数将它们合并成一个顺序表C,要求C的元素也是升序排列。 5.试写一算法,顺序表的就地逆置,即利用原表的存储空间,将顺序表(a1,a2,….,an)逆置为(an,an-1,…a2,a1)。 优点: (1)无须为表示结点间的逻辑关系而增加额外的存储空间。 (2)可以方便地随机存取表中的任一结点。 缺点: (1)插入和删除平均须移动一半结点。 (2)存储分配预先进行(静态) 过大 浪费 过小 溢出 根据链接方式和指针多寡 单链表 双链表 循环链表 ……

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档