数据结构上机作业DOCWord文档下载推荐.docx

上传人:b****2 文档编号:12987111 上传时间:2022-10-01 格式:DOCX 页数:34 大小:237.54KB
下载 相关 举报
数据结构上机作业DOCWord文档下载推荐.docx_第1页
第1页 / 共34页
数据结构上机作业DOCWord文档下载推荐.docx_第2页
第2页 / 共34页
数据结构上机作业DOCWord文档下载推荐.docx_第3页
第3页 / 共34页
数据结构上机作业DOCWord文档下载推荐.docx_第4页
第4页 / 共34页
数据结构上机作业DOCWord文档下载推荐.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

数据结构上机作业DOCWord文档下载推荐.docx

《数据结构上机作业DOCWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构上机作业DOCWord文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。

数据结构上机作业DOCWord文档下载推荐.docx

L)清除多项式

3.voidTraversePoly1(SeqListL)遍历多项式

4.boolInsertPoly1(SeqList&

L,ElemTypeitem)插入一项

5.doublePolySum1(SeqListL,doublex)多项式求值

6.boolDeleteList1(SeqList&

L,intpos)删除一项

7.SeqListPolyAdd1(SeqList&

L1,SeqList&

L2)多项式相加

三、源程序代码

#include<

stdio.h>

iostream.h>

stdlib.h>

#include"

Linkpoly.h"

Seqpoly.h"

voidmain()

{

cout<

<

"

现在进行第一次测试。

(链表表示)"

endl;

doublesum;

inti,e,n,pos;

floata,x;

NodeType*pa,*pb,*pp;

InitPoly(pa);

//初始化多项式

InitPoly(pb);

请输入要测试的项数:

;

cin>

>

n;

请依次输入要测试的各项的系数和指数:

for(i=0;

i<

i++){

a;

e;

InsertPoly(pa,a,e);

//插入一项

pa=pa->

next;

}

该多项式为:

TraversePoly(pa);

//输出多项式

现在进行删除测试,请输入要删除的项的系数和指数以及pos值:

pos;

if(DeletetPoly(pa,a,e,pos)){

删除成功!

现在多项式为:

else

删除失败!

请输入X的值,进行多项式计算:

x;

sum=PolySum(pa,x);

该多项式的值为:

sum<

请输入另一个多项式的项数:

请输入该多项式的各项系数和指数:

InsertPoly(pb,a,e);

pb=pb->

pp=PolyAdd(pa,pb);

两多项式相加后得到的多项式为:

TraversePoly(pp);

ClearPoly(pa);

ClearPoly(pb);

ClearPoly(pp);

现在进行第二次测试。

(顺序表表示)"

ListTypes,t,q;

InitPoly1(s);

InitPoly1(t);

InitPoly1(q);

InsertPoly1(s,a,e);

TraversePoly1(s);

if(DeletetPoly1(s,a,e,pos)){

sum=PolySum1(s,x);

InsertPoly1(t,a,e);

q=PolyAdd1(s,t);

TraversePoly1(q);

ClearPoly1(s);

ClearPoly1(t);

ClearPoly1(q);

Linkploy.h:

structNodeType{

floatcoef;

intexp;

NodeType*next;

};

boolInitPoly(NodeType*&

p)//初始化多项式

if((p=newNodeType)==NULL)

returnfalse;

p->

next=p;

returntrue;

voidTraversePoly(NodeType*p)//输出多项式

NodeType*h=p->

if(h!

=p){

h->

coef<

*"

X"

^"

exp;

h=h->

while(h!

if(h->

coef>

0)

+"

voidClearPoly(NodeType*&

p)//清除多项式

NodeType*cp,*np;

cp=p->

while(cp!

np=cp->

deletecp;

cp=np;

boolInsertPoly(NodeType*&

p,floata,inte)//插入一项

NodeType*h;

if((h=newNodeType)==NULL)

coef=a;

exp=e;

next=p->

next=h;

boolDeletetPoly(NodeType*&

p,floata,inte,intpos)//删除一项

if(pos>

1||pos<

-1)

NodeType*cp=p->

NodeType*np=p;

if(pos==0){

if(cp->

coef==a&

&

cp->

exp==e)

break;

else{

np=cp;

cp=cp->

elseif(pos==-1)

while(cp!

np->

next=cp->

doublePolySum(NodeType*p,floatx)//多项式求值

inti;

doublesum=0,item;

item=1;

for(i=1;

=cp->

i++)

item=item*x;

sum=sum+item*cp->

coef;

returnsum;

NodeType*PolyAdd(NodeType*p1,NodeType*p2)//多项式相加

NodeType*a=p1->

next,*b=p2->

next,*c,*pc;

InitPoly(c);

pc=c;

while(a!

=p1&

b!

=p2){

if(a->

exp==b->

exp){

coef=a->

coef+b->

if(coef!

=0){

InsertPoly(pc,coef,a->

exp);

pc=pc->

a=a->

b=b->

elseif(a->

exp<

b->

InsertPoly(pc,a->

coef,a->

InsertPoly(pc,b->

coef,b->

=p1){

while(b!

returnc;

Seqploy.h:

#defineMaxSize10000

structListType{

float*list;

intsize;

voidInitPoly1(ListType&

p.list=(float*)malloc(MaxSize*sizeof(float));

if(p.list==NULL){

动态可分配的储存空间用完,退出运行!

exit

(1);

p.size=0;

for(inti=0;

MaxSize;

p.list[i]=0;

voidTraversePoly1(ListTypep)//输出多项式

inti=0;

if(p.list[i]!

=0)

p.list[i]<

i;

for(i=i+1

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

当前位置:首页 > 高等教育 > 医学

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

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