- 0
- 0
- 约1.18万字
- 约 22页
- 2024-03-02 发布于辽宁
- 举报
实验题目:多项式运算器
实验内容:1、熟悉编程环境
2、用链式存储结构实现稀疏一元多项式运算器
实验目的和要求:
1、 通过本实验,掌握VC++6.0的基本使用,包括源程序的输入,编译运行及调试。调试的目的是找程序的运行错误,通过DEBUG菜单设置断点实现。
2、 用链式存储结构实现一元多项式的运算。
熟练掌握指针和链表的基本操作,利用菜单进行功能选择。
功能基本要求:创建、显示、求和、求差、求值、销毁、清空、修改
实验算法:
1、 数据结构描述:
输入的稀疏每一个多项式用一个链表存储,链表的每一个节点存储多项式的一个非零项。定义为LNode型结构体,其中保存该项的系数和指数。主函数中用一个数组存储每一个多项式的第一项的头指针以调用多项式。
2、 函数和算法描述:
主函数main定义LNode*数组a[]存储每一个多项式头节点的地址,并构建菜单以选择调用函数进行多项式的操作,对多项式进行操作的函数返回新改动的多项式头结点地址。
Createpolyn函数用以创建一个多项式,在用户输入结束指令之前,不断的申请空间,构建LNode型结点并加至构建的链表的表尾,输入结束指令之后,表尾设NULL并返回表头指针。
Printpolyn函数用以在屏幕上打印多项式,接收需要打印的多项式链表的头结点,构造循环体在表尾之前,不断以mxW格式打印对应结点中的数据。
Copypolyn函数用以复制多项式,接收需要复制的多项式a和复制位置b的指针,构造循环体,在a到表尾之前循环,在b对应的链表中构建新的结点,结点上的数据赋值为a中对应的值,返回b的头结点地址。
Addpolyn函数用以求两个已知多项式a、b的和存入c,先构建循环体,在a、b链表都未进行到表尾时,比较两个结点中的次数值,如果相同,将系数相加赋于c的当前结点,如果不同,将次数较小多项式y(a或b)的结点赋值给c当前结点,在将y链表向后推。
Subtract函数用以求两多项式的差,类似求和算法。
Value函数用以求一个多项式的值,接收x的值,构建循环体,在表尾之前循环以遍历多项式链表。内置循环体,以次数n为限循环,求出xW的值,乘以系数并将每一项的值叠加得值。
Destroypolyn函数用以销毁已有的多项式,将此多项式链表的空间FREE掉,返回空指针。
Clearpolyn函数用以清空多项式,构建循环体,将多项式的各项的系数、指数置零。
3、 时空分析:
L=sizeof(structLNode)
一个含有N项的多项式占用的储存空间为NL+1
主要函数的时间复杂度:(N项多项式)
Createpolyn:N
Printpolyn:N
Copypolyn:N
Addpolyn:N1+N2
实验结果:
控制菜单:
顶项项多多多式-7?式多多多健云制顼顼攻践『八SM创昱复争多冬销请幕
显示多项式:
多项式求值:
nu
旦
4-5678y0
1224-567850
*
初1
项多
圭牙项项顼;式计多多多顶顶、践竺改H一多备」侣隼
-摩项^|^顶项项-多多农式亥^^夕s-^^mgft^js-复步多冬新请口『-a----------算一
_HWWW_X.,昂尊项项页沉式Tt1式务多多刑侦顶顶段一::一西I—IJ果M戋鬲宿修退
二
二
二
二
二
二
二
-摩项^顶项项i多多农式式式亥名夕』夕s-^^mgft^js-复步多冬新请4.-D----------
□1
求和、求差、复制、销毁、清空也均能得到正常结果
源代码:
#includestdio.h
#includestdlib.h
#defineN20
#defineLsizeof(structLNode)
structLNode
{
intn;
doublem;
structLNode*next;
};
structLNode*createpolyn(structLNode*p)
{
doublei=1;
intj,a=0;structLNode*u;
p=(structLNode*)malloc(L);
p-m=0;
p-n=0;
p-next=NULL;
u=p;
while(i!=0)
{
printf(-从低次到高次输入X的非零项的次数及系数:00表示结束:\n);
scanf(%d%lf,j,i);
if(i!=0){
p-next=(structLNode*)malloc(L);
p=p-next;
p-m=i;p-n=j;
}
};
p-next=NULL;
printf(completed!\n);
return(u);
}
voidprintpolyn(structLNode*p)
您可能关注的文档
- 散光症状及治疗.docx
- 散文语言的特点.docx
- 散文阅读及答案.docx
- 散杂货海运出口操作流程.docx
- 散热器热工性能实验指导书.docx
- 散粮装卸工艺.docx
- 散货装卸粉尘污染防治.docx
- 敬老院关爱老人心理健康活动计划.docx
- 数据结构课程设计_一元多项式计算器.docx
- 数控机床电气控制复习资料.docx
- 常识超大杯刷题4-法律.pdf
- 26省考申论刷题第四节.pptx
- 二期申论套题第二节.pptx
- 人教版八年级语文下册《五柳先生传》教案.pdf
- 语文版初二语文上册纪念白求恩家庭作业.pdf
- 双侧睾丸切除术后的护理个案.doc
- 2026版高考历史一轮复习模块1政治文明历程专题4西方政治文明的演进第10讲课题3民主政治的扩展学案含解析人民版.doc
- 2025年山东轻工职业学院计算机应用技术专业数据库概论科目期末试卷及答案.docx
- 黑龙江省齐齐哈尔甘南县第二中学等八校2025_2026学年高一地理下学期期中试题.doc
- 2025年信阳师范学院计算机科学与技术专业《数据库原理》科目期末试卷及答案.docx
原创力文档

文档评论(0)