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

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

ID:47438319

大小:22.87 KB

页数:17页

时间:2019-09-02

2019计算机软件技术基础_实验指导书_第1页
2019计算机软件技术基础_实验指导书_第2页
2019计算机软件技术基础_实验指导书_第3页
2019计算机软件技术基础_实验指导书_第4页
2019计算机软件技术基础_实验指导书_第5页
资源描述:

《2019计算机软件技术基础_实验指导书》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、计算机软件技术基础_实验指导书  《计算机软件技术基础》  实验指导书  编写:XXX  适用专业:电器工程与自动化  通讯工程  电子信息工程    安徽建筑工业学院电子与信息工程学院  20XX年9月  实验一:线性链表的建立、查找、插入、删除实验  实验学时:2实验类型:验证实验要求:必修一、实验目的  通过本实验的学习,要求学生能够通过单链表的存储结构,掌握单链表的基本操作,包括单链表的建立、查找、插入、删除、输出等操作。通过本实验可以巩固学生所学的线性表知识,提高编程能力,为后继课程的学习奠定基础。二、实验内容  1、为线性表{1

2、0,30,20,50,40,70,60,90,80,100}创建一个带头  结点的单链表;  2、在该链表上查找值为50,65的结点,并返回查找结果;  3、在该链表上值为50的结点后,插入一个值为120的结点;4、删除该链表上值为70的结点。写出各操作的实现函数,并上机验证。三、实验原理、方法和手段  使用带头结点的单链表的表示线性表,通过实验,熟悉链表的创建、查找、插入、删除、输出等是链表的基本操作。具体如下:  首先定义单链表的节点结构;  在单链表创建过程中,首先初始化一个带头结点的空链表,对线性表中的各元素依次通过键盘输入、建立该

3、元素结点、插入到单链表中,实现单链表的创建过程;结点的插入有头插入和尾插入两种方法,采用不同方法时应注意元素的输入顺序。  查找过程可以从头结点开始,将待查找的数据依次与每个结点的数据域比较,匹配及查找成功,弱链表访问完未找到匹配的元素,则查找不成功。为能够返回查找成功的结点位置,在链表的搜索过程中,应设置一个计数器,记录搜索结点的序号;  插入结点时,首先要通过查找算法,找到带插入结点的前驱结点,然后为带插入元素建立结点,通过指针的修改,将结点插入。  删除结点时,首先要通过查找算法,找到待删除结点的前驱,然后通过指针的修改,将待删除结点

4、从链表中卸下,释放该结点。  以上操作的正确性,均可以通过链表的输出结果来验证。因此,可以统一写一个单链表的输出函数。  2  四、实验组织运行要求  采用以学生自主训练为主的开放模式组织教学,教师予以答疑与指导。五、实验条件  PC机一台、Windows操作系统、C++Builder软件或TurboC环境六、实验步骤  (1)、将提前准备好的源程序录入计算机;(2)、调试源程序,修正错误,记录实验数据;(3)、分析运行结果,验证所编程序是否正确。七、思考题  (1)、线性表的逻辑结构与存储结构的区别?  (2)、采用头插入和尾插入方法,建

5、立单链表有何区别?八、实验报告  (1)、实验预习:仔细阅读实验指导书,复习教材关于线性表部分的内容和C语言中关于指针的内容。  (2)、实验记录的内容应包括源程序、实验数据和运行结果。  (3)、实验结论部分的内容应包括对实验结果的分析和总结,回答思考题。  3  参考程序  #include  typedefstructnode{  intinfo;/*每个元素数据信息*/  structnode*next;/*存放后继元素的地址*/}linknode,*pointer;  voidcreatelink(pointer*list){  

6、pointerp;intx,n,i;  *list=(pointer)malloc(sizeof(linknode));(*list)->next=NULL;  printf(scanf(输入结点个数*/  printf(for(i=1;iinfo=x;  p->next=(*list)->next;  (*list)->next=p;}}  voidprint(pointerh){  pointerp;p=h->next;while(p){  printf(  p=p->next;}}  intindex(pointerlist,

7、intx,pointer*pos)  {/*在链表list中,查找值为x的结点,成功返回结点位置i及结点指针pos,不成功返回0*/  pointerp;inti=0;  p=list->next;while(p){  i++;  if(p->info!=x)  p=p->next;  else  {  *pos=p;  4  return(i);/*查找成功,返回结点位置i*/  }}  return(0);/*查找不成功,返回0*/}  intinsertlink(pointerlist,intitem,intx)  {/*在单链表li

8、st中,值为item的结点后,插入一个值为x的结点*/pointerp,q;intk;  k=index(list,item,&q);/*在链表h中查找值为50的结点,结点指针存

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。