网站大量收购闲置独家精品文档,联系QQ:2885784924

数据结构实验指导书-线性表的操作.pdfVIP

  1. 1、本文档共7页,可阅读全部内容。
  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文档。上传文档
查看更多

数据结构实验指导书-线性表的操作

实验1线性表的基本操作

一、实验目的

(1)掌握线性表的逻辑特征;

(2)掌握线性表顺序存储结构的特点,熟练掌握顺序表的基本运算;

(3)熟练掌握线性表的链式存储结构定义及基本操作;(4)理解循环链表和

双链表的特点和基本运算;

(5)加深对顺序存储数据结构的理解和链式存储数据结构的理解,逐

步培养解决实际问题的编程能力;二、实验内容

1、创建有若干个元素(可以是整型数值)的顺序表,实现对顺序表

的初始化,对已建立的顺序表插入操作、删除操作、遍历输出顺序表。

要求各个操作均以函数的形式实现,在主函数中调用各个函数实现以

下操作:

(1)从键盘上依次输入21、18、30、75、42、56,创建顺序表,并

输出顺序表中的各元素值。

(2)分别在单链表的第3个位置插入67,给出插入成功或失败的信

息,并输出此时顺序表中的各元素值。

(3)删除顺序表中的第6个数据元素,给出删除成功或失败的信息,

并输出此时顺序表中的各元素值。

(4)查找顺序表中是否有75这个元素,如果有返回该元素在顺序表

中的位序。

2、创建有若干个元素(可以是整型数值)的单链表,实现对单链表

的初始化,对已建立的顺序表插入操作、删除操作、查找操作、遍历输出

单链表表。要求各个操作均以函数的形式实现,在主函数中调用各个函数

实现以下操作:

(1)从键盘上依次输入21、18、30、75、42、56,创建单链表,并

输出单链表中的各元素值。

(2)分别在单链表的第4个位置,给出插入成功或失败的信息,并

输出单链表中的各元素值。

(3)删除单链表中的第2个数据元素,给出删除成功或失败的信息,

并输出单链表中的各元素值。

(4)查找顺序表中的第五个元素并输出该元素的值。三、参考代码

(1)顺序表的操作

#include#include

#defineTRUE1#defineFALSE0#defineOK1#defineERROR0

#defineOVERFLOW-2typedefintStatu;

#defineINIT_SIZE100/某初始分配空间的大小某/

#defineLISTINCREMENT10/某分配增量某/

typedefintElemType;typedeftruct{

ElemType某elem;intlength;intlitize;}SqLit;

/某ElemTypeelem[INIT_SIZE],注两者区别。存储空间的起始地址。

某//某线性表中数据元素个数,即表长某//某线性表所申请的存储空间的

大小某/

SqLitCreateLit_Sq(SqLitL)/某创建一个空的线性表某/{

L.elem=(ElemType某)malloc(INIT_SIZE某

izeof(ElemType));if(!L.elem)e某it(ERROR);L.length=0;/某表长为0

某/L.litize=INIT_SIZE;/某申请的空间为初始大小某/returnL;}

StatuInertLit_Sq(SqLit某L,inti,ElemTypee)/某在线性表的第i

个位置前插入元素e某/{int某newbae,某q,某p;intj;

值不合法值不合法

length=L-litize)/某当前空间已满,增加分配空间某/{

newbae=(ElemType

某)realloc(L-elem,(L-litize+LISTINCREMENT)某

izeof(ElemType));if(!newbae)e某it(ERROR);L-elem=newbae;

L-litize=L-litize+LISTINCREMENT;}

q=(L-elem[i-1]);

for(p=(L-elem[L-length-1]);p=q;--p)某(p+1)=某

文档评论(0)

156****6092 + 关注
实名认证
文档贡献者

博士研究生

1亿VIP精品文档

相关文档