存储结构实验报告Word文档格式.docx
《存储结构实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《存储结构实验报告Word文档格式.docx(5页珍藏版)》请在冰豆网上搜索。
![存储结构实验报告Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/18/95ee1526-b4be-4bdd-98aa-8550aad9aba0/95ee1526-b4be-4bdd-98aa-8550aad9aba01.gif)
⑵基于所设计的存储结构实现线性表的基本操作;
⑶编写一个主程序对所实现的线性表进行测试;
⑷线性表的应用:
①设线性表L1和L2分别代表集合A和b,试设计算法求A和b的并集c,并用线性表L3代表集合c;
②(选做)设线性表L1和L2中的数据元素为整数,且均已按值非递减有序排列,试设计算法对L1和L2进行合并,用线性表L3保存合并结果,要求L3中的数据元素也按值非递减有序排列。
⑸设计一个一元多项式计算器,要求能够:
①输入并建立多项式;
②输出多项式;
③执行两个多项式相加;
④执行两个多项式相减;
⑤(选做)执行两个多项式相乘。
三、数据结构设计
1.按所用指针的类型、个数、方法等的不同,又可分为:
线性链表(单链表)
静态链表
循环链表
双向链表
双向循环链表
2.用一组任意的存储单元存储线性表中数据元素,用指针来表示数据元素间的逻辑关系。
四、算法设计
1.定义一个链表
voidcreatlist(Linklist
Linklistp
s;
L=(Linklist)malloc(sizeof(Lnode));
p=L;
L->
next=nuLL;
for(i=0;
i {
s=(Linklist)malloc(sizeof(Lnode));
scanf("
%d"
s->
p->
next=s;
p=s;
}
2.
(1)两个链表的合并
voidmergelist(Linklist
pa=La->
next;
pb=Lb->
Lc=pc=La;
while(papc=pa;
pa=pa->
}
else{pc->
next=pb;
pc=pb;
pb=pb->
pc->
next=pa?
pa:
pb;
free(Lb);
(2)两个链表的并集
Linklistunionlist(Linklist
intflag;
head=q=(Linklist)malloc(sizeof(Lnode));
p1=La->
while(p1)
{
flag=0;
p2=Lb->
while(p2)
if(p1->
data==p2->
data)
flag=1;
break;
p2=p2->
if(flag==0)
data=p1->
data;
q->
q=s;
p1=p1->
next=Lb->
returnhead;
3.
(1)一元多项式的加法
Listaddpoly(Listpa,Listpb)//一元多项式的加法{
intn;
Listpc,s,p;
pa=pa->
pb=pb->
pc=(List)malloc(sizeof(structLinklist));
p=pc;
while(pa!
=nuLLs->
expn=pa->
expn;
coef=pa->
coef;
p=s;
elseif(pa->
expn expn)
s=(List)malloc(sizeof(structLinklist));
s->
expn=pb->
coef=pb->
else
n=pa->
coef+pb->
if(n!
=0)
coef=n;
=nuLL)
while(pb!
returnpc;
(2)一元多项式的减法
Listsubpoly(Listpa,Listpb)//一元多项式的减法{
=nuLL
coef=-pb->
coef-pb->
篇二:
顺序存储结构实验报告
石家庄经济学院
学院:
管理科学与工程学院专业:
信息管理与信息系统
信息工程学院计算机实验中心制
抽象数据类型List[1]的顺序存储结构表示及基本运算的实现;
二实验目的
1.通过本次实习,重点加强对抽象数据类型List的认识及其不同的存储表示与相关操作的算法、编程实现;
2.通过题目3,学会线性结构的基本应用;
即如何用线性结构进行问题建模与求解。
三实习要求
1.预习c语言中结构体的定义与基本操作方法2.对顺序表的每个基本操作用单独的函数实现3.编写完整程序完成下面的实验内容并上机运行4.整理并上交实验报告
四实验步骤
1.概要设计
分析问题,建立问题的ADT=(D,s,p),即给相关问题的ADT的表示及相关操作的定义。
ADTList{
数据对象:
D={ai|ai∈elemset,i=1,2,…,n,n≥0}数据关系:
R1={|ai-1,ai∈D,i=1,2,…,n}基本操作:
InitList(
typedefintelemType;
//定义线性表的数据元素类型为int
顺序存储实现的抽象数据类型如下:
typedefstruct{
elemType*elem;
//存储空间基址intlength;
//当前长度
intlistsize;
//当前分配的存储容量(以sizeof(elemType)为单位)}sqList;
给出概要数据中,定义的操作对应的算法原型如下:
statusInitList(sqListif(!
L.elem)
exit(oVeRFLow);
L.length=0;
L.listsize=n;
篇三:
数据结构实验报告1线性表的顺序存储结构