- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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;
您可能关注的文档
- 计算机组成原理课后答案(白中英主编_第五版_立体化教材)_2.doc
- 计算机组成原理课程实习.doc
- 计算机组成原理课程设计-----201120070131---唐红艳.doc
- 计算机组成原理课程设计.jsp.doc
- 计算机组成原理课程设计报告(计算机专业).doc
- 计算机组成原理课程设计报告2.doc
- 计算机组成原理课程设计模版.doc
- 计算机组成名词解释.doc
- 计算机组成实验-实验四.doc
- 计算机组成练习题.doc
- Unit 6 Get Close to Nauture Lesson 22 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 23 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025食品饮料行业AI转型白皮书-2025食品饮料行业数智化转型领先实践.pdf
- Unit 7 Be Together Lesson 24 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 25 -课件-2025-2026学年度北京版英语四年级上册.pptx
- Unit 7 Be Together Lesson 26 -课件-2025-2026学年度北京版英语四年级上册.pptx
- 2025年广州体育职业技术学院单招职业倾向性考试题库完美版.docx
- 软件公司员工考勤异常处理.doc
- 2025年土地登记代理人之土地登记相关法律知识题库500道及完整答案【有一套】.docx
- 2025年四平职业大学单招职业适应性考试题库含答案.docx
最近下载
- 激光打标机安全操作规程.docx VIP
- 九年级化学常用实验仪器教案新版.doc VIP
- Unit1 I love sports第4课时 Hit it big&Wrap up&Let's explore (课件)2025-2026学年外研版英语四年级上册.pptx VIP
- 华东师大版八年级数学上册 第12章 整式的乘除 单元检测试题(有答案).docx VIP
- GB50150-2016 电气装置安装工程 电气设备交接试验标准 (2).pdf VIP
- 家具构造与工艺 课件.ppt VIP
- 压力管道设计与审批人员考试题电子版真题部分2.docx VIP
- 2025年药品经营许可证换证自查报告模板(仅参考).docx
- 2023年8月5日河北省三支一扶面试真题及答案解析(上午).doc VIP
- 高性能特种聚异氰酸酯交联剂Takenate.PDF VIP
文档评论(0)