数据结构实验报告Word文档下载推荐.docx

上传人:b****5 文档编号:15734528 上传时间:2022-11-15 格式:DOCX 页数:24 大小:159.24KB
下载 相关 举报
数据结构实验报告Word文档下载推荐.docx_第1页
第1页 / 共24页
数据结构实验报告Word文档下载推荐.docx_第2页
第2页 / 共24页
数据结构实验报告Word文档下载推荐.docx_第3页
第3页 / 共24页
数据结构实验报告Word文档下载推荐.docx_第4页
第4页 / 共24页
数据结构实验报告Word文档下载推荐.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据结构实验报告Word文档下载推荐.docx

《数据结构实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。

数据结构实验报告Word文档下载推荐.docx

-10121012

(4)除法:

21多项式:

121011

(5)求导:

4多项式:

101111213

(6)求定积分:

2多项式:

1021上线和下限:

21

(7)求不定积分:

3多项式:

102132

二、概要设计

为实现上述功能,以改进的单链表来存多项式,每一个结点存储多项式的一项,为此有以下的抽象数据类型——线性表和一元多项式。

1.线性表的抽象数据类型定义为:

ADTLinkList{

数据对象:

ai|ai∈ElemSet,i=1,2,…,n,n>

=0)

数据关系:

R={<

ai-1,ai>

|ai-1,ai∈D,i=1,2,,n-1}。

线性表也可表示作(a1,a2,…,an),n为表长,n=0时线性表称为空表

基本操作:

StatusMakeNode(Link&

p,ElemTypee);

操作结果:

分配由p指向的值为e的结点

voidfreeNode(Link&

p);

操作结果:

释放p所指结点

StatusInitList_L(LinkList&

L);

构造一个空链表L

StatusDestroyList_L(LinkList&

初始条件:

L已存在

操作结果:

释放头结点与元素节点

StatusClearList_L(LinkList&

将链表置空

StatusInsFirst_L(LinkList&

L,Links)

L已经存在

将s所指结点插入到L的第一个元素结点前,头结点后

StatusAppend(LinkList&

L已经初始化

StatusInsAfter_L(LinkList&

L,Link&

p,Links)

将s所指的结点插入到p所指的结点后,并修改p,使之指向新的结点

StatusDeleteFirst_L(LinkList&

L,Linkp,Link&

q)

将Pa中p指向的第一个元素结点删除并以q返回

StatusDeleteAfter_L(LinkList&

L,Linkp,Linkq)

已知p指向L中的某个结点,删除p指向结点的后结点,并以q返回

StatusSetCurElem_L(Link&

p,ElemTypee)

用e更新p所指向的数据域

StatusListEmpty(LinkListL)

判断表是否为空

intListLength_L(LinkListL)

求表长

ElemTypeGetCurElem_L(Linkp);

p指向的结点存在

返回p所指的数据

StatusLocatePos_L(LinkListL,inti,Link&

p)

用p返回L中第i个元素结点的位置,

StatusLocateElem_L(LinkListL,ElemTypee,Link&

p,Status(*cmp)(ElemType,ElemType))

返回L中第一个与元素e满足关系cmp()的元素的位置

PositionLocateElemprior_L(LinkListL,ElemTypee,Status(*cmp)(ElemType,ElemType))

返回L中第一个与元素e满足关系cmp()的元素的位置的前驱

PositionGetHead(LinkListL);

返回链表的头指针

PositionPriorPos(LinkListL,Linkp);

返回p的前驱

PositionNextPos_L(LinkListL,Linkp);

返回p的后继

}ADTLinkList

2.多项式的抽象数据类型定义为:

ADTPolynomial{

D={ai|ai∈TermSet,i=1,2,…,m,m>

=0,TermSet中的元素包含一个表示系数的实数和一个表示指数的整数}

|ai-1,ai∈D,且ai-1中的指数值小于ai中的指数值,i=2..n}

基本操作:

CreatePolyn(&

p,m)

输入m项的系数和指数,创建一元多项式P

DestroyPolyn(&

一元多项式P已经存在

销毁一元多项式P

PrintPolyn(P)

初始条件:

打印输出一元多项式P

PolynLength(P);

一元多项式已经存在

返回一元多项式的项数

StatusIntegrate(LinkList&

L);

将单链表中指数相同的项进行整理合并

intCreatPolyn(LinkList&

P,intm);

创建多项式

intPrintPolyn(PolynomialPa);

输出多项式

StatusSortList_L(LinkList&

L);

将多项式排序

StatusCopyPolyn(Polynomial&

Pc,PolynomialPa);

多项式Pc,Pa已经存在

将Pa复制给Pc

AddPolyn(&

pa,&

pb)

一元多项式Pa与Pb已经存在

计算Pa=Pa+Pb,并销毁Pb

intSubtractPolyn(LinkList&

Pa,LinkList&

Pb)

计算Pa=Pa-Pb,并销毁Pb

StatusPolyDerivative(Polynomial&

Pa);

一元多项式Pa已经存在

计算Pa的导数

StatusMultiOneIterm(PolynomialPc,Polynomial&

Paa,Linkqb)

一元多项式Pc,Paa已经存在,

计算Pc=Paa*qb

StatusMultiplyPolyn(Polynomial&

Pa,PolynomialPb)

计算Pa=Pa*Pb,并销毁Pb

StatusDividePolyn(Polynomial&

Pa,PolynomialPb,Polynomial&

Pc)

一元多项式Pa、Pc与Pb已经存在

计算Pa=Pa/Pb,并销毁Pb,余数等于Pc

StatusIndefiIntePolyn(Polynomial&

Pa)

计算Pa的不定积分

floatValueofPolyn(PolynomialPa,floata)

已知x的值,求多项式的值

floatDefiIntePolyn(Polynomial&

Pa,floata,floatb)

求多项式的定积分,并根据积分上下限的值a,b求出定积分的值作为函数的返回值

3.本程序包括四个模块:

(1)主程序模块:

Intmain(){

初始化;

While

{

接受命令;

处理命令;

}(“命令”=“退出”);

return0;

}

(2)多项式单元模块——实现多项式抽象数据类型

(3)有序表单元模块——实现有序表抽象数据类型

(4)节点结构单元模块——实现单链表的结点结构

各模块之间的调用关系:

主程序模块

多项式模块

有序表单元模块

节点结构单元模块

三、详细概要设计

1.元素类型、节点类型、指针类型

typedefstruct

floatcoef;

intexpn;

}Term;

//多项式就是一个元素类型为Term的单链表

typedefTermElemType;

typedefstructLNode{

ElemTypedata;

structLNode*next;

}*Link,*Position;

2.根据有序单链表的特点,并且为了方便多项式的调用和操作。

单链表采用改进的单链表,链表设头尾两个指针,和表现行数据域。

头结点的数据域没有实在意义。

typedefstructLinkList

Linkhead,tail;

intlen;

}LinkList;

typedefLinkListPolynomial;

改进的单链表基本操作如下:

//构造一个空链表L

//释放头结点与元素节点

//将链表置空

//将s所指结点插入到L的第一个元素结点前,头结点后

//将s所指的结点插入到p所指的结点后,并修改p,使之指向新的结点

//将Pa中p指向的第一个元素结点删除并以q返回

//已知p指向L中的某个结点,删除p指向结点的后结点,并以q返回

//用e更新p所指向的数据域

Statu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1