实验报告2一元稀疏多项式计算器Word文档格式.docx
《实验报告2一元稀疏多项式计算器Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验报告2一元稀疏多项式计算器Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
{
floatcoef;
intindex;
structNode*next;
}LinkList;
本程序涉及到多项式的建立、多项式的输出、两个多项式的相加减。
用带头结点的单链表存储多项式;
程序中共定义了5个函数:
voidInsert(LinkList*p,LinkList*h)〃把节点p插入到链表h中
LinkList*Creat_L(LinkList*head,intm)//创建一个链表,项数为
voidPrintf(LinkList*L)
LinkList*ADDlist(LinkList*head,LinkList*pb)
LinkList*MinusList(LinkList*head,LinkList*pb)
四、程序源代码
#include<
iostream.h>
malloc.h>
stdio.h>
stdlib.h>
intindex;
structNode*next;
}LinkList;
LinkList*q1,*q2;
intflag=0;
q1=h;
if(p->
coef==0)
free(p);
else
if(q1->
next==NULL)
q1->
next=p;
q2=q1->
next;
while(flag==0)
index<
q2->
index)
if(q2->
flag=1;
}
q1=q2;
q2=q2->
index>
p->
next=q2;
coef=p->
coef+q2->
coef;
if(q2->
next=q2->
free(q2);
inti;
LinkList*q;
head=(LinkList*)malloc(sizeof(LinkList));
head->
next=NULL;
for(i=1;
i<
=m;
i++)
q=(LinkList*)malloc(sizeof(LinkList));
q->
printf("
请输入第%项的系数和指数:
"
i);
scanf("
%f,%d"
&
coef,&
index);
Insert(q,head);
returnhead;
LinkList*p,*q,*pa;
inti=0;
p=L->
q=L->
if(p==NULL)
{printf("
0\n"
);
return;
while(p)
{p=p->
i++;
}printf("
%d,"
while(q)
%g,"
q->
coef);
printf("
q=q->
LinkList*ADDlist(LinkList*head,LinkList*pb){
LinkList*pc;
while(flag==0)
{if(pb->
next==NULL)flag=1;
{pb=pb->
pc=(LinkList*)malloc(sizeof(LinkList));
pc->
coef=pb->
pc->
index=pb->
index;
Insert(pc,head);
if(pb->
pb=pb->
coef=-pb->
voidmain()
inti,m,n;
LinkList*pa=0,*pb=0,*pc;
while
(1){system("
cls"
欢迎使用一元稀疏多项式计算
器\n"
请输入多项式a的项数:
"
%d"
m);
pa=Creat_L(pa,m);
请输入多项式b的项数:
n);
pb=Creat_L(pb,n);
欢迎使用一元稀疏多项式计算器\n"
0.
退出系统
\n"
1.
输出多项式a
2.
输出多项式b
3.
输出多项式a+b
4.
输出多项式a-b
while
(1)
1
\n
请选择操作:
i);
switch(i)
case0:
return;
case1:
输出多项式a的整数序列为:
Printf(pa);
break;
case2:
输出多项式b的整数序列为:
Printf(pb);
case3:
pc=ADDlist(pa,pb);
输出多项式a+b的整数序列为:
Printf(pc);
break;
case4:
pc=MinusList(pa,pb);
输出多项式a-b的整数序列为:
default:
\n输入有误,请重新输入:
\n"
五、运行结果
俞入第3项的系数和
■'
M
俞入第3项的系数丰
欢
0•退岀系绕
丄-麵出多项式’
2•输岀萎项孟b项式zb
4-输出多顶式vh
Hlrl斗冃土冃H
主冃主冃斗冃主
2,1
5,B-3.1,11
项式b的项数;
37,0-5.8ffl-ltb疏多项式计算器
3
»
■快I列歹序序1数2数弓整t(展lt4L2^^bm、」丄-TrJ二上M?
E--uMr.选项选项选现岀岀岀4-.冷丄#-W
nV为===*
2,1
7,
请输更入塾项更蠢製扌吐亟人第2项更薑癒吋备入第咗项的系数却1逼△鄴项翌謎I诰倉△第2项更舍魅吐亟人>项聶入第4项的系数稲
e.iStE缰遥鬆b3■轨岀參项式”h4-输岀多项式才h
6,-3-1,14.4,2施貓禽项数.4
—fc,_3
5-4,2
1,2
7.8,15
用一元稀疏多项式计算器
式n
7・;
u\lrJ二上M7」二LSM
选项选项选项
岀出
输
鲁尊喩序列为:
4,-1.2,9,4.4,2.-1,1,6,-3,bg漕薮序列为;
3,7.8,15,4-4,2,-6,-3,
-bffiffi数序列为I4,-7.«
15,-1-2,9,-1,1.12,
4
选择操作I丄黠器彎序列知新唧會序列为匸项矗整数序列为
1,5,1,4,1,3,1,2,1
-1,4,-1,3,
4丄弓丄2丄
4市」元--
&
a
DnunuDQQ41nuD^l一工=工-J-J请籐欢充项顶聲
b3
234■
1i11-
■数数数数数数系系系系系系-£
nJ&
MJ&
M项项项项项项
123456
第第第第第第
人人入人人入
砒多多多多垢出岀出岀MU」刖」刖心刖□RX4zoxax5—■V區■-1234
输岀
输出
ru|
俞入第玄项的系数和|巨
』入蔓丄项範泰鑒护扌
俞入第2项的系数*时欢迎
孔退出系统
1•输岀多项式换
氛揄出多项式“h
4•输岀多项式a-h
丁er・Q一制?
J二丄勺7」・1丄N选顶选项选项岀岀出■■-^T.■■■ils^mils!
4#+nr
请选择操作:
■:
穗疏艺映式计算器项式曲项数;
2
1,1
1,100
项式h的项纵2
输岀多项[主「
输出畧顶请笑
S'
*T亠
I
i
1,200
请给入第?
项的系数削…廿亠一
二•欢迎使用一元稀疏多项式计算器臥退岀系统
』•输出寻项J&
^+b
4■输岀多项式社-h
请选扌羊操作;
1j'
p员我站僭数序列为:
2,1,100,1,1,盟肩麗落薮序JII为.2,1,200,1,100,输出姜顶蔻讪掘数序列为:
3,1,2«
0.2,100,1,1,请选择操朮1
拥岀
输岀富卿数序列知——
六、小结(不少于100字)
虽然数据结构是一门公认的比较难的课程,自己学起来也觉得有些吃力,
但在本次课程设计之前,我系统地把教科书复习了一遍,大大加深了对各种数据结构的理解,运用起来更加自如。
不断地翻阅各种参考书,以及在老师和同学的帮助下,基本上考虑到了所有的边界情况,反复测试各种类型的数据,强化程序的健壮性,最终顺利完成了本次课程设计。
虽然课程设计做的不够完善,但在设计的过程中受益匪浅,通过查资料等学到了很多以前不知道或不太会应用的知识,对单向链表的使用有了更深刻的了解和掌握,因为多项式的计算要求用单向链表来实现,所以在做课程设计之前通过网上找资料,查参考书及问辅导老师等对单向链表的使用比以前掌握的更加到位,并且能够灵活运用,通篇几乎用的都是单向链表,这是受益的一大重点。