- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(C语言)一元稀疏多项式计算器
实验报告一
题目:编制一个一元稀疏多项式计算器
班级:1302018 姓名:王雪 学号 完成日期:2014.4.5
一、需求分析
1、一元稀疏多项式简单计算器的功能是:
1.1 输入并建立多项式;
1.2 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,………cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;
1.3多项式a和b相加,建立多项式a+b;
1.4 多项式a和b相减,建立多项式a-b。
2、设计思路:
2.1 定义线性表的动态分配顺序存储结构;
2.2 建立多项式存储结构,定义指针*next
2.3利用链表实现队列的构造。每次输入一项的系数和指数,可以输出构造的一元多项式
2.4演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的输入数据(滤去输入中的非法字符)建立的多项式以及多项式相加的运行结果在屏幕上显示。多项式显示的格式为:c1x^e1+c2x^e2+…+cnx^en
3、设计思路分析
要解决多项式相加,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以我将结点结构体定义为
序数coef 指数exp指针域next 运用尾插法建立两条单链表,以单链表和poly分别表示两个一元多项式和,的求和运算等同于单链表的插入问题(将单链表poly中的结点插入到单链表poly中),因此“和多项式”中的结点无须另生成。
为了实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项,由此得到下列运算规则:
① 若p-expq-expn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。
② 若p-exp=q-expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。
③ 若p-expq-expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。
为实现上述程序的功能,应以带头结点的单链表表示多项式。为此,需要一个抽象数据类型:单链表。
2.1单链表的抽象数据类型定义
ADT LinkList{
数据对象:D={ai|ai∈TermSet,i=1,2,…,m,m≥0
TermSet中的每个元素包含一个表示系数的实数和表示指数的整数}
数据关系:R1={ai-1,aiai-1,ai∈D且ai-1中的指数值ai中的指数值,i=2,…,n}
基本操作:
CreatLinkList(p,m)
操作结果:输入m项的系数和指数,建立一元多项式p。
DestoryLinkList(p)
初始条件:一元多项式p已存在。
操作结果:销毁一元多项式p.
PrintLinkList(p)
初始条件:一元多项式p已存在。
操作结果:打印输出一元多项式p.
AddLinkList(pa,pb)
初始条件:一元多项式pa和pb已存在。
操作结果:完成多项式的相加运算,即:pa=pa+pb,并销毁一元多项式pb.
SubtractLinkList(pa,pb)
初始条件:一元多项式pa和pb已存在。
操作结果:完成多项式的想减运算,即:pa=pa-pb,并销毁一元多项式pb.
}ADT LinkList
2.2本程序包括个模块:
1)主程序模块:
Void main(){
初始化;
输出菜单;
While(1){
接受命令;
处理命令;
}(循环一直为真直至接受退出命令);
2)单链表单元模块——实现单链表的抽象数据类型;
3)结点结构单元模块——定义单链表的结点结构。
三、详细设计
3.1元素类型、结点类型和指针类型
typedef int Status; typedef int ElemType;
typedef struct LNode{? ? float?? ? coef;??????????????????? ? //系数? ? ElemType? expn;???????????????? ? //指数? ? struct? ? LNode *next;??????????? }LNode,*LinkList;
{ //分配由p指向下一个多项式的头结点head、后继为空的结点,并返回TRUE,
//若分配失败,则返回FALSE
p= (LinkList)malloc(sizeof(struct LNode));if(!p)return false;
p=head;p-next=null;return ture;
void FreeNode(LinkList p)
{
您可能关注的文档
- 数字图像处理 简答题.docx
- 数字图像处理 基于图像锐化的算子.ppt
- 数字图像处理 空域滤波 实验报告.doc
- 数字图像处理 第七章图像分割.ppt
- 数字图像处理-实验报告.doc
- 数字图像处理chap6_1.ppt
- 数字图像处理chap6_2.ppt
- 数字图像处理(直方图).ppt
- 数字图像处理_图像恢复理论与实践.ppt
- 数字图像处理_图像恢复和重建.pptx
- 基本面选股组合月报:大模型AI选股组合本年超额收益达6.60.pdf
- 可转债打新系列:安集转债,高端半导体材料供应商.pdf
- 可转债打新系列:伟测转债,国内头部第三方IC测试企业.pdf
- 联想集团PC换机周期下的价值重估.pdf
- 计算机行业跟踪:关税升级,国产突围.pdf
- 科技类指数基金专题研究报告:详解AI产业链指数及基金布局.pdf
- 计算机行业研究:AIAgent产品持续发布,关税对板块业绩影响较小.pdf
- 民士达深度报告:国内芳纶纸龙头,把握变局期崛起机遇.pdf
- 社会服务行业动态:全球首张民用无人驾驶载人航空器运营合格证落地,霸王茶姬冲击美股IPO.pdf
- 通信行业研究:特朗普关税令落地,长期看好国产算力链.pdf
最近下载
- 日本化妆品标准(中英文对照版).pdf
- 2025湖南湘潭医卫职业技术学院招聘11人笔试备考题库及答案解析.docx
- 【精选】SOUNDCHECK使用说明.pdf
- 江苏省基本医疗保险诊疗项目和医疗服务设施范围及支付标准、医疗保险特殊医用材料目录( 20210419)公示版.pdf VIP
- 浙江专用2025版高考历史大二轮复习板块综合二世界简史二近代世界文明学案.doc VIP
- 浙江专用2025版高考历史大二轮复习板块综合二世界简史三现代世界文明学案.doc VIP
- 79博客-目录书签跳转版.pdf VIP
- 西南18J412 阳台 外廊 楼梯栏杆.pdf
- 销售人员培训师求职个人简历求职简历大学生优秀简历模板.doc VIP
- 2023年部编版道德与法治六年级小升初模拟题及答案(共3套) .pdf VIP
文档评论(0)