江西师范大学软件学院学生实验报告

江西师范大学软件学院学生实验报告

ID:35408481

大小:104.31 KB

页数:5页

时间:2019-03-24

江西师范大学软件学院学生实验报告_第1页
江西师范大学软件学院学生实验报告_第2页
江西师范大学软件学院学生实验报告_第3页
江西师范大学软件学院学生实验报告_第4页
江西师范大学软件学院学生实验报告_第5页
资源描述:

《江西师范大学软件学院学生实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、江西师范大学软件学院学生实验报告专业10软件工程2班姓名李芳云号1067001085日期课程名称数据结构实验室名称X2407实验名称线性表及其应用指导教师吴福英成绩一、实验目的1.学会定义单链表的结点类型,实现对单链表的一些基本操作和具体的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。2.常握单链表基本操作及两个有序表归并、单链表逆置等操作的实现。二、实验要求1.预习C语言中结构体的定义与基本操作方法。2.对单链表的每个基本操作用单独的函数实现。3・编写完整程序完成下面的实验内容并上机运行。4

2、.整理并上交实验报告。三、实验内容1.构造一个单链表L,其头结点指针为head,编写程序实现将L逆置。(即最后一个结点变成第一个#include#include#includeHslnklist.h"voidmain(){intx;node*L;L=init();printf(uenterdigtials:");scanf("%d"/(&x);while(x!=-l){L=insert(L/x/O);scanf(”%d“,&x);}printf("outputnewdi

3、gtials:");display(L);printf(u");}enterdigtials:12345678-1outputnewdigtials:各节点的值为:87654321Pressanykeytocontinue结点,原来倒数笫二个结点变成笫二个结点,如此等等。)2.构造两个带有表头结点的有序单链表La、Lb,编写程序实现将La、Lb合并成序单链表Leonode*hebing(node*headl/node*head2){node*ql*q2*pl*p2;ql=headl->next;q2=h

4、eadl->next->next;pl=head2;p2=head2・>next;while(q2){while(ql->infoinfo){P1=P2;p2=p2->next;}ql->next=p2;pl->next=ql;pl二ql;ql二q2;q2=q2->next;}returnhead2;}-"J:lab1067001085李芳云实验五带头结点la和lb链表合成lc有序'

5、请输天13的看输入要插入的数,以・1结尾,使之成为有序递减单链表:1®987-1各节点的值为:10987请输

6、入lb的值输入要插入的数,以・1结尾,使之成为有序递减单链表:653-1各节点的值为:653各节点的值为:298653Pressangkeytocontinue^合并思想是:程序需要3个指针:pa、pb、pc,其屮pa,pb分別指向La表与Lb表中当前待比较插入的结点,pc指向Lc表中当前最后一个结点。依次扫描La和Lb中的元素,比较当前元素的值,将较小者链接到★匹之后,如此重复直到La或Lb结束为止,再将另一个链表余下的内容链接到pc所指的结点之后。3、设单链表L是一个递减有序表,试写一算法将X插入其屮后

7、仍保持L的有序node*charumyhead(node*headjntx){node*p*q*pre;pre二head;q=head->next;p=(node*)malloc(sizeof(node));p->info=x;while(q&&q->info>p->info)pre二q;q=q->next;}p->nex十二q->next;q->next=p;returnhead;1910请输入有序递减链表的值:1910876綸由链表:各节点的值为:1910请输入要插入的数:22请输出插入后的链表各节点的

8、值为:2218请输出插入后的链表各节点的值为:221918100请输出插入后的链表各节点的值为:22191810}性。4、设计一个算法,对单链表按结点值从小到大对结点进行排序。node*paixu(node*head){node*q/*pre/*n*m;q=head->next;head->next=NULL;while(q)pre二head;n=head->next;m=q;q=q->next;while(n&&n->infoinfo)pre=n;n=n->next;pre->next二m;;m-

9、>next=n;returnhead;}请输入:O298910O84各节点的值为:029891008斗各节点的值为:04829891OOPressanykey5、(选做题)写一算法将单链表中值重复的结点删除,node*delemyhead(node★head){node*p*q*r;//for(p=head->next;p!=NULL;p=p->next)//for(q=head->next->next;q!=N

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

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

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