欢迎来到天天文库
浏览记录
ID:47510400
大小:163.00 KB
页数:25页
时间:2020-01-12
《算法与数据结构实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.2015-2016学年第二学期《算法与数据结构》课程实验报告专业软件工程学生姓名成晓伟班级软件141学号1410075094实验学时16实验教师徐秀芳信息工程学院word资料.实验一单链表的基本操作一、实验目的1.熟悉C语言上机环境,进一步掌握C语言的基本结构及特点。2.掌握线性表的各种物理存储表示和C语言实现。3.掌握单链表的各种主要操作的C语言实现。4.通过实验理解线性表中的单链表存储表示与实现。二、主要仪器及耗材普通计算机三、实验内容与要求1、用C语言编写一个单链表基本操作测试程序。(1)初始化单链
2、表(2)创建单链表(3)求单链表长度(4)输出单链表中每一个结点元素(5)指定位置插入某个元素(6)查找第i个结点元素的值(7)查找值为e的结点,并返回该结点指针(8)删除第i个结点(9)销毁单链表2、实验要求(1)程序中用户可以选择上述基本操作。程序启动后,在屏幕上可以菜单形式显示不同功能,当按下不同数字后完成指定的功能,按其他键,则显示错误后重新选择。(2)要求用线性表的顺序存储结构,带头结点的单链表存储结构分别实现。(3)主函数实现对基本操作功能的调用。3、主要代码(1)初始化单链表LinkList*
3、InitList(){//创建一个空链表,初始化线性表LinkList*L;L=(LinkList*)malloc(sizeof(LinkList));L->next=NULL;returnL;}word资料.(2)创建单链表//头插法voidCreateListF(LinkList*L){LinkList*s;inti=1,a=0;while(1){printf("输入第%d个元素(0表示终止)",i++);scanf("%d",&a);if(a==0)break;s=(LinkList*)malloc(
4、sizeof(LinkList));s->data=a;s->next=L->next;L->next=s;}}(3)求链表长度intListLength(LinkList*L){//求链表长度intn=0;LinkList*p=L;while(p->next!=NULL){p=p->next;n++;}return(n);}(4)在指定位置插入元素intInsertList(LinkList*L,inti,ElemTypee){LinkList*p=L,*s;intj=0;while(p!=NULL&&j
5、next;j++;}//找出要插入的位置的前一个位置if(p==NULL){return0;}else{word资料.s=(LinkList*)malloc(sizeof(LinkList));s->data=e;s->next=p->next;p->next=s;return1;}}(5)输出链表voidDispList(LinkList*L){//输出链表LinkList*p=L->next;while(p!=NULL){printf("%d",p->data);p=p->next
6、;}printf("");}(6)查找链表中指定元素intGetElem(LinkList*L,inti){//查找链表中指定元素LinkList*p=L;intj=0;while(jnext;}if(p==NULL){return0;}else{returnp->data;}}(7)查找值是e的结点并返回该指针LinkList*LocateElem(LinkList*L,ElemTypee){//查找值是e的结点并返回该指针inti=1;LinkList*p
7、=L;while(p!=NULL)word资料.{if(p->data==e)returnp;}if(p==NULL){returnNULL;}}(8)删除元素intListDelete(LinkList*L,inti,ElemType*e){//删除元素LinkList*p=L,*q;intj=0;while(p!=NULL&&jnext;j++;}//找到要删除元素地址的前一个地址if(p==NULL){return0;}//不能删除else{q=p->next;*e=q->dat
8、a;p->next=q->next;free(q);//删除成功return1;}}(9)销毁链表voidDestroyList(LinkList*L){//销毁链表LinkList*pre=L,*p=L->next;while(p!=NULL){free(pre);pre=p;p=pre->next;}free(pre);}word资料.……main函数:intmain(){LinkList*L;ElemTyp
此文档下载收益归作者所有