关于线性表顺序存储操作的16种算法.docVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#include?stdio.h #include?stdlib.h typedef?int?elemType; /************************************************************************/ /*????????????????以下是关于线性表顺序存储操作的16种算法???????????????????? ???*/ /************************************************************************/ struct?List{ ????elemType?*list; ????int?size; ????int?maxSize; }; void?againMalloc(struct?List?*L) {???? ????/*?空间扩展为原来的2倍,并由p指针所指向,原内容被自动拷贝到p所指向的存储空间?*/ ????elemType?*p?=?realloc(L-list,?2?*?L-maxSize?*?sizeof(elemType)); ????if(!p){????/*?分配失败则退出运行?*/ ????????printf(存储空间分配失败! ); ????????exit(1); ????} ????L-list?=?p;????/*?使list指向新线性表空间?*/ ????L-maxSize?=?2?*?L-maxSize;????/*?把线性表空间大小修改为新的长度?*/ } /*?1.初始化线性表L,即进行动态存储空间分配并置L为一个空表?*/ void?initList(struct?List?*L,?int?ms) { ????/*?检查ms是否有效,若无效的则退出运行?*/ ????if(ms?=?0){ ????????printf(MaxSize非法! ); ????????exit(1);????/*?执行此函数中止程序运行,此函数在stdlib.h中有定义?*/ ????} ????L-maxSize?=?ms;????/*?设置线性表空间大小为ms?*/ ????L-size?=?0; ????L-list?=?malloc(ms?*?sizeof(elemType)); ????if(!L-list){ ????????printf(空间分配失败! ); ????????exit(1); ????} ????return; } /*?2.清除线性表L中的所有元素,释放存储空间,使之成为一个空表?*/ void?clearList(struct?List?*L) { ????if(L-list?!=?NULL){ ????????free(L-list); ????????L-list?=?0; ????????L-size?=?L-maxSize?=?0; ????} ????return; } /*?3.返回线性表L当前的长度,若L为空则返回0?*/ int?sizeList(struct?List?*L) { ????return?L-size; } /*?4.判断线性表L是否为空,若为空则返回1,?否则返回0?*/ int?emptyList(struct?List?*L) { ????if(L-size?==0){ ????????return?1; ????} ????else{ ????????return?0; ????} } /*?5.返回线性表L中第pos个元素的值,若pos超出范围,则停止程序运行?*/ elemType?getElem(struct?List?*L,?int?pos) { ????if(pos??1?||?pos??L-size){????/*?若pos越界则退出运行?*/ ????????printf(元素序号越界! ); ????????exit(1); ????} ????return?L-list[pos?-?1];????/*?返回线性表中序号为pos值的元素值?*/ } /*?6.顺序扫描(即遍历)输出线性表L中的每个元素?*/ void?traverseList(struct?List?*L) { ????int?i; ????for(i?=?0;?i??L-size;?i++){ ????????printf(%d?,?L?-list[i]); ????} ????printf( );? ????return; } /*?7.从线性表L中查找值与x相等的元素,若查找成功则返回其位置,否则返回-1?*/ int?findList(struct?List?*L,?elemType?x) {

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档