数据结构使用C语言版朱战立线性表课件.ppt

数据结构使用C语言版朱战立线性表课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构——使用C语言版(朱战立)线性表;2.1 线性表抽象数据类型;2.线性表抽象数据类型;2.2 线性表的顺序表示和实现;a0;2.顺序表操作的实现;(3)插入数据元素ListInsert(L, i, x) int ListInsert(SeqList *L, int i, DataType x) { int j; for(j = L-size; j i; j--) L-list[j] = L-list[j-1]; //依次后移 ? L-list[i] = x; //插入x L-size ++; //元素个数加1 return 1; };int ListInsert(SeqList *L, int i, DataType x) {int j; if(L-size = MaxSize) { printf(顺序表已满无法插入! \n); return 0; } else if(i 0 || i L-size ) { printf(参数i不合法! \n); return 0; } else { for(j = L-size; j i; j--) L-list[j] = L-list[j-1]; L-list[i] = x; L-size ++; return 1; } };(4)删除数据元素ListDelete(L, i, x) int ListDelete(SeqList *L, int i, DataType *x) { int j; *x = L-list[i]; //保存删除的元素到x中 ? for(j = i +1; j = L-size-1; j++) L-list[j-1] = L-list[j]; //依次前移 L-size--; //数据元素个数减1 return 1; };int ListDelete(SeqList *L, int i, DataType *x) { int j; if(L-size = 0) { printf(顺序表已空无数据元素可删! \n); return 0; } else if(i 0 || i L-size-1) { printf(参数i不合法); return 0; } else{ *x = L-list[i]; for(j = i +1; j = L-size-1; j++) L-list[j-1] = L-list[j]; L-size--; return 1; } };(5)取数据元素ListGet(L, i, x) int ListGet(SeqList L, int i, DataType *x) { if(i 0 || i L.size-1) { printf(参数i不合法! \n); return 0; } else { *x = L.list[i]; return 1; } };3.顺序表操作的效率分析; 设Pi是在第i个存储位置插入一个数据元素的概率,顺序表中的数据元素个数为n,当在顺序表的任何位置上插入数据元素的概率相等时,有Pi=1/(n+1),则 插入时的平均移动次数为: n(n+1)/2÷(n+1)=n/2≈O(n); 顺序表中的其余操作都和数据元素个数n无关,因此,在顺序表中插入和删除一个数据元素的时间复杂度为O(n),其余操作的时间复杂度都为O(1);4.顺序表应用举例;实现方法: 1、采用直接编写一个主函数实现。 2、利用已设计实现的抽象数据类型模块。(存放在头文件名为SeqList.h中,通过 #include “SeqList.h” ) 程序设计如下: #include stdio.h #define MaxSize 100 typedef int

文档评论(0)

132****5705 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5104323331000004

1亿VIP精品文档

相关文档