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

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

ID:14731807

大小:321.50 KB

页数:29页

时间:2018-07-30

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

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

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

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

3、法,采用不同方法时应注意元素的输入顺序。(3)查找过程可以从头结点开始,将待查找的数据依次与每个结点的数据域比较,匹配及查找成功,弱链表访问完未找到匹配的元素,则查找不成功。为能够返回查找成功的结点位置,在链表的搜索过程中,应设置一个计数器,记录搜索结点的序号;(4)插入结点时,首先要通过查找算法,找到带插入结点的前驱结点,然后为带插入元素建立结点,通过指针的修改,将结点插入。(5)删除结点时,首先要通过查找算法,找到待删除结点的前驱,然后通过指针的修改,将待删除结点从链表中卸下,释放该结点。(6)以上操作的正确性,均可以通过链表的输出结果来验证。因

4、此,可以统一写一个单链表的输出函数。29四、实验组织运行要求采用以学生自主训练为主的开放模式组织教学,教师予以答疑与指导。五、实验条件PC机一台、Windows操作系统、C++Builder软件或TurboC环境六、实验步骤(1)、将提前准备好的源程序录入计算机;(2)、调试源程序,修正错误,记录实验数据;(3)、分析运行结果,验证所编程序是否正确。七、思考题(1)、线性表的逻辑结构与存储结构的区别?(2)、采用头插入和尾插入方法,建立单链表有何区别?八、实验报告(1)、实验预习:仔细阅读实验指导书,复习教材关于线性表部分的内容和C语言中关于指针的内

5、容。(2)、实验记录的内容应包括源程序、实验数据和运行结果。(3)、实验结论部分的内容应包括对实验结果的分析和总结,回答思考题。29参考程序#includetypedefstructnode{intinfo;/*每个元素数据信息*/structnode*next;/*存放后继元素的地址*/}linknode,*pointer;voidcreatelink(pointer*list){pointerp;intx,n,i;*list=(pointer)malloc(sizeof(linknode));(*list)->next=NULL

6、;printf("InputtheNumberofnode:");scanf("%d",&n);/*输入结点个数*/printf("Inputthedatasofnode:");for(i=1;i<=n;i++)/*前插入法创建链表*/{scanf("%d",&x);p=(pointer)malloc(sizeof(linknode));p->info=x;p->next=(*list)->next;(*list)->next=p;}}voidprint(pointerh){pointerp;p=h->next;while(p){prin

7、tf("%6d",p->info);p=p->next;}}intindex(pointerlist,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;29return(i);/*查找成功,返回结点位置i*/}}return(0);/*查找不成功,返回0*/}intinsertlink(pointerlist,intit

8、em,intx){/*在单链表list中,值为item的结点后,插入一个值为x的结点*/pointerp,q

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

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

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