冯数据结构实验Word格式.docx

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

冯数据结构实验Word格式.docx

《冯数据结构实验Word格式.docx》由会员分享,可在线阅读,更多相关《冯数据结构实验Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

冯数据结构实验Word格式.docx

对于两个一元多项式中所有指数不相同的项,则分别复抄到“和”多项式中去。

实验步骤:

1、

2、

3、

六、调试过程及实验结果

七、总结

多项式系数小的

八、附录

#pragmaonce

#include<

iostream>

structnode

{

intexp;

//指数

doublecoef;

//系数

node*next;

//指针域

};

classpoly

private:

node*head;

public:

poly();

voidin1poly();

voidin2poly(int,int[],double[]);

voiddelpoly();

voidprtpoly();

polyoperator+(poly&

);

/*~poly(void);

*/

#include"

StdAfx.h"

poly.h"

iostream"

usingnamespacestd;

poly:

:

poly()

head=NULL;

return;

}

voidpoly:

in1poly()

node*p,*k;

inte;

doublec;

k=NULL;

cout<

<

"

输入:

系数指数。

输入-1结束"

endl;

cin>

>

c>

e;

while(e>

=0)

{

p=newnode;

p->

exp=e;

coef=c;

next=NULL;

if(k==NULL)

head=p;

else

k->

next=p;

k=p;

}

in2poly(intn,inte[],doublec[])

intk;

node*p;

for(k=n-1;

k>

=0;

k--)

coef=c[k];

p->

exp=e[k];

next=head;

head=p;

return;

delpoly()

node*p,*q;

q=head;

while(q!

=NULL)

p=q->

next;

deleteq;

q=p;

prtpoly()

node*k;

if(head==NULL)

cout<

空表"

k=head;

while(k!

("

k->

coef<

"

exp<

)"

k=k->

polypoly:

operator+(poly&

p2)

polyp;

node*k,*q,*m,*n;

m=head;

n=p2.head;

while((m!

=NULL)&

&

(n!

=NULL))

if(m->

exp==n->

exp)

c=m->

coef+n->

coef;

e=m->

exp;

m=m->

n=n->

elseif(m->

exp>

n->

c=n->

e=n->

c=m->

if(c!

q=newnode;

q->

if(k==NULL)

p.head=q;

else

k->

next=q;

k=q;

while(m!

e=m->

m=m->

q->

p.head=q;

next=q;

k=q;

while(n!

c=n->

e=n->

else

return(p);

//poly:

~poly(void)

//{

//delete[]

//}

stdafx.h"

cmath"

int_tmain(intargc,_TCHAR*argv[])

polyp1,p2,add_p;

intpe1[4]={0,1,8,17};

doublepc1[3]={7,3,9};

intpe2[3]={1,7,8};

doublepc2[3]={8,22,-9};

p1.in2poly(3,pe1,pc1);

p2.in2poly(3,pe2,pc2);

add_p=p1+p2;

欢迎使用多项式相加程序!

"

多项式1为:

p1.prtpoly();

多项式2为:

p2.prtpoly();

两多项式相加和为:

add_p.prtpoly();

 

return0;

邢台学院数学与信息技术学院

栈及其应用

1、熟悉栈的原理和实现方式;

2、理解使用栈消除函数递归调用的原理;

3、掌握后缀表达式计算的方法。

1、栈实现阶乘函数;

2、栈实现后缀表达式的计算。

函数调用栈的结构如下:

第n层调用

(当前函数局部变量空间)

第n-1层调用

(当前函数的主调函数变量空间)

第1层调用

主函数局部变量空间

函数调用的栈空间

使用栈消去递归的算法框架如下:

初始化栈;

将完整问题参数压栈;

while(栈非空)

取出栈顶元素所描述的问题

如果可以直接解决,则直接解决

否则分解为子问题压栈

后缀表达式是运算符在运算数之后的一种表达式存储的数据结构,不需要比较运算符优先级别,只需要每次读到运算数时压栈,读到运算符时将运算数出栈,将结果压栈即可。

最后的运算结果存放在栈底。

实验步骤

#defineSElemTypeint

classstack

SElemType*base;

SElemType*top;

stack()

base=newSElemType[100];

top=base;

voidPush(SElemTypen)

*top=n;

top++;

SElemTypePop()

SElemTypee;

e=*(--top);

returne;

//实现阶乘运算

intJC(intn)

stacks;

intsum=1;

//将?

数簓据Y循-环·

压1入?

栈?

中D

while(n)

s.Push(n);

n--;

while(s.top!

=s.base)

intb=s.Pop();

sum*=b;

returnsum;

//用栈实现后缀表达式

intCount(charb[])

stacks1;

intsum=0;

inti=0;

while(b[i]!

='

\0'

if(b[i]!

='

+'

b[i]!

*'

-'

/'

s1.Push(b[i]-'

0'

{

if(b[i]=='

{

inta=s1.Pop();

intb=s1.Pop();

sum=a+b;

}

elseif(b[i]=='

sum=a*b;

sum=b-a;

sum=b/a;

s1.Push(sum);

}

i++;

intmain(intargc,char*argv[])

intm=6;

inta=JC(m);

printf("

%d的阶乘计算结果为a:

阰"

m);

%d\n"

a);

\n\n"

后缀表达式计算:

charc[10]={'

5'

'

intb=Count(c);

%d"

b);

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

当前位置:首页 > 求职职场 > 简历

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

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