欢迎来到天天文库
浏览记录
ID:47438319
大小:22.87 KB
页数:17页
时间:2019-09-02
《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的结点,结点指针存
此文档下载收益归作者所有