实验报告Word文档下载推荐.docx
- 文档编号:17625217
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:9
- 大小:17.59KB
实验报告Word文档下载推荐.docx
《实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验报告Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
在所有三种操作中都显示操作是否正确以及操作后单链表的内容。
其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。
③程序所能达到的功能:
完成单链表的生成(通过插入操作)、插入、删除、排序操作。
④测试数据:
A.插入操作中依次输入13579,生成一个单链表
B.再输入24插入单链表。
C.对这些数进行排序。
D.删除头尾两个数。
1和9
E.输入要删除的一个数。
如2,这生成的新链表为3457
2.概要设计
本实验由三部分组成头文件linearlist1.h、实现文件linearlist1.cpp、以及主文件listmain1.cpp。
主要程序如下
typedefintElemType;
structLinearList
{
ElemType*list;
//存现线表元素
intsize;
intMaxSize;
};
voidInitList(LinearList&
L,intms);
voidClearList(LinearList&
L);
intListSize(LinearList&
boolListEmpty(LinearList&
boolListFull(LinearList&
voidTraverList(LinearList&
boolFindList(LinearList&
L,ElemType&
item);
boolInsertList(LinearList&
L,constElemType&
item,intmark);
boolDeleteList(LinearList&
voidOrderOutputList(LinearList&
L,intmark);
//实现头文件linearlist1.cpp
#include<
iomanip.h>
stdlib.h>
#include"
linearlist1.h"
L,intms)
L.list=newElemType[ms];
if(!
L.list==NULL)
{
cerr<
<
"
Memoryallocationfailure!
endl;
exit
(1);
}
L.size=0;
L.MaxSize=ms;
}
L)
returnL.size;
}
returnL.size==0;
returnL.size==L.MaxSize;
for(inti=0;
i<
L.size;
i++)cout<
L.list[i]<
'
'
;
cout<
item)
i<
i++)
if(L.list[i]==item)
{
item=L.list[i];
returntrue;
}
returnfalse;
boolUpdateList(LinearList&
L,constElemType&
L.list[i]=item;
item,intmark)
if(ListFull(L))returnfalse;
if(mark>
0)//向表头插入元素
for(inti=L.size-1;
i>
=0;
i--)
L.list[i+1]=L.list[i];
L.list[0]=item;
else//向表尾插入元素
if(mark<
0)L.list[L.size]=item;
else
{//有序插入元素
for(inti=0;
if(item<
L.list[i])break;
for(intj=L.size-1;
j>
=i;
j--)
L.list[j+1]=L.list[j];
L.list[i]=item;
L.size++;
returntrue;
item,intmark)
if(ListEmpty(L))returnfalse;
0)
//删除表头元素
item=L.list[0];
for(inti=1;
L.list[i-1]=L.list[i];
else//删除表尾元素
0)item=L.list[L.size-1];
else
//删除值为item的元素
if(L.list[i]==item)break;
if(i>
=L.size)
returnfalse;
elseitem=L.list[i];
for(intj=i+1;
j<
j++)
L.list[j-1]=L.list[j];
L.size--;
L,intmark)//对线性表按升序或者降序输出
int*b=newint[L.size];
inti,k,x;
for(i=0;
i++)b[i]=i;
k=i-1;
for(intj=i;
if(mark==1&
&
L.list[b[j]]<
L.list[b[k]])k=j;
if(mark!
=1&
L.list[b[k]]<
L.list[b[k]])b[k]=x;
if(k!
=i-1)
intx=b[i-1];
b[i-1]=b[k];
b[k]=x;
for(i=0;
cout<
L.list[b[i]]<
cout<
//主文件listmain1.cpp
#include<
constintML=10;
#include"
linearlist1.cpp"
voidmain()
LinearLista;
InitList(a,ML);
inti;
ElemTypex;
//
cout<
从键盘输入5个整数:
5;
cin>
>
x;
InsertList(a,x,-1);
从键盘输入2个整数:
cin>
InsertList(a,x,1);
TraverList(a);
OrderOutputList(a,1);
OrderOutputList(a,0);
LinearListb;
InitList(b,ML);
a.size;
InsertList(b,a.list[i],0);
TraverList(b);
if(DeleteList(a,x,1))
Deletesuccess!
elsecout<
Deletefail!
if(DeleteList(a,x,-1))
从键盘上输入一个待删除的整数:
if(DeleteList(a,x,0))
4.调试分析
这次试验是我这个学期以来的第一次试验,所以调试起来非常麻烦,经过自己不断地努力还是没能调试出来,因为自己的基础太差了,还有过了一个学期,自己C语言的知识都忘光了,所以没能调试成功……
5.使用说明
程序名为LinearList.exe,程序执行后显示
从键盘上输入5个整数:
然后任意输入5个整数
A.插入操作中依次输入13579,生成一个单链表
6.测试结果:
(没有调试成功)
四、实验总结(结果分析和体会)
这是我这个学期的第一次试验,完成这次作业感觉上存在着非常多的问题,因为上个学期C语言的基础就不是很好,加上过了一个漫长的暑假,那些知识多忘记的七七八八了,加上课本的知识太深奥了,在短时间内又很难消化,所以说这次试验对我来说是一次极大的挑战。
这次试验中#include<
、#include<
这些头文件在以前都很少接触过,对于它的使用,我感到无从下手,还有对于线性结构类型这类函数以及它的调用在上个学期只是粗略学习过,并没有学的很深,所以对它的运用我感到无能为力。
还有上个学期我们函数的调用这一方面我们只是讲了一点点,这一方面的知识很匮乏,我想老师能不能找个时间帮我们补习一下……
完成这次试验,虽然困难重重,但我相信只要我愿意努力,我就会成功,我会不断努力的。
在今后的学习里,课堂上我会认真听讲,不懂的就要及时请教老师。
希望经过我的努力,还有老师的帮助,我的成绩能够有所提高……
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告