计算机软件技术基础_实验指导书.docVIP

  1. 1、本文档共29页,可阅读全部内容。
  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文档。上传文档
查看更多
计算机软件技术基础_实验指导书.doc

《计算机软件技术基础》 实 验 指 导 书 编写:XXX 适用专业:电器工程与自动化 通 讯 工 程 电 子 信 息 工 程 安徽建筑工业学院 电子与信息工程学院 2007年9月 实验一:线性链表的建立、查找、插入、删除实验 实验学时:2 实验类型:验证 实验要求:必修 一、实验目的 通过本实验的学习,要求学生能够通过单链表的存储结构,掌握单链表的基本操作,包括单链表的建立、查找、插入、删除、输出等操作。通过本实验可以巩固学生所学的线性表知识,提高编程能力,为后继课程的学习奠定基础。 二、实验内容 为线性表{10,30,20,50,40,70,60,90,80,100}创建一个带头结点的单链表; 在该链表上查找值为50,65的结点,并返回查找结果(找到:返回在县新链表中的位置); 在该链表上值为50的结点后,插入一个值为120的结点; 删除该链表上值为70的结点。 写出各操作的实现函数,并上机验证。 三、实验原理、方法和手段 使用带头结点的单链表的表示线性表,通过实验,熟悉链表的创建、查找、插入、删除、输出等是链表的基本操作。具体如下: (1)首先定义单链表的节点结构; (2)在单链表创建过程中,首先初始化一个带头结点的空链表,对线性表中的各元素依次通过键盘输入、建立该元素结点、插入到单链表中,实现单链表的创建过程;结点的插入有头插入和尾插入两种方法,采用不同方法时应注意元素的输入顺序。 (3)查找过程可以从头结点开始,将待查找的数据依次与每个结点的数据域比较,匹配及查找成功,弱链表访问完未找到匹配的元素,则查找不成功。为能够返回查找成功的结点位置,在链表的搜索过程中,应设置一个计数器,记录搜索结点的序号; (4)插入结点时,首先要通过查找算法,找到带插入结点的前驱结点,然后为带插入元素建立结点,通过指针的修改,将结点插入。 (5)删除结点时,首先要通过查找算法,找到待删除结点的前驱,然后通过指针的修改,将待删除结点从链表中卸下,释放该结点。 (6)以上操作的正确性,均可以通过链表的输出结果来验证。因此,可以统一写一个单链表的输出函数。 四、实验组织运行要求 采用以学生自主训练为主的开放模式组织教学,教师予以答疑与指导。 五、实验条件 PC机一台、Windows操作系统、 C++ Builder软件或Turbo C环境 六、实验步骤 (1)、将提前准备好的源程序录入计算机; (2)、调试源程序,修正错误,记录实验数据; (3)、分析运行结果,验证所编程序是否正确。 七、思考题 (1)、线性表的逻辑结构与存储结构的区别? (2)、采用头插入和尾插入方法,建立单链表有何区别? 八、实验报告 (1)、实验预习:仔细阅读实验指导书,复习教材关于线性表部分的内容和C语言中关于指针的内容。 (2)、实验记录的内容应包括源程序、实验数据和运行结果。 (3)、实验结论部分的内容应包括对实验结果的分析和总结,回答思考题。 参考程序 #include stdio.h typedef struct node{ int info; /*每个元素数据信息*/ struct node *next; /*存放后继元素的地址*/ }linknode,*pointer; void createlink(pointer *list) { pointer p; int x,n,i; *list=(pointer)malloc(sizeof(linknode)); (*list)-next=NULL; printf(\nInput the Number of node:); scanf(%d,n);/*输入结点个数*/ printf(\nInput the datas of node:\n); for(i=1;i=n;i++)/*前插入法创建链表*/ { scanf(%d,x); p=(pointer)malloc(sizeof(linknode)); p-info=x; p-next=(*list)-next; (*list)-next=p; } } void print(pointer h) { pointer p; p=h-next; while(p) { printf(%6d,p-info); p=p-next; } } int index(pointer list,int x,pointer *pos) {/*在链表list中,查找值为x的结点,成功返回结点位置i及结点指针pos,不成功返回0*/ pointer p; int i=0;

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档