[内附完整源码和文档] 基于C语言实现的一元多项式的计算

一、概述
通过C语言使用链式存储结构实现一元多项式加法、减法和乘法的运算。按指数降序排列。

二、需求分析
建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式的加减运算并输出结果。

三、概要设计
3.1 存储结构
一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。

3.1.1 单连表的抽象数据类型定义
ADT List{
数据对象:
D={ai|ai∈ElemSet,i=1,2,…,n,n≥0}
数据关系:
R1={<ai-1,ai>| ai-1, ai∈D,i=2,…,n}
基本操作:
InitList(&L)
//操作结果:构造一个空的线性表
CreatPolyn(&L)
//操作结果:构造一个以单连表存储的多项试
DispPolyn(L)
//操作结果:显示多项试
Polyn(&pa,&pb)
//操作结果:显示两个多项试相加,相减的结果
} ADT List;
3.1.2 本程序包含模块
//定义单链表
typedef struct LNode
{
}LNode,*LinkList;
//定义一个空表
void InitList(LinkList &L)
{}
//用单链表定义一个多项式
void CreatPolyn(LinkList &L)
{}
//显示输入的多项式
void DispPolyn(LinkList L)
{}
void Polyn(LinkList &pa,LinkList &pb)
{}
void main()
{
//定义一个单连表;
cout<<endl<<" **欢迎来到一元多项式计算程序 "<<endl;
LNode *L1,*L2;
Polyn(L1,L2);
}
各模块之间的调用关系如下:
在这里插入图片描述
四、详细设计
4.1 单连表存储结构
//定义单链表
typedef struct LNode
{
}LNode,*LinkList;
//定义一个空表
void InitList(LinkList &L)
{}
//用单链表定义一个多项式
void CreatPolyn(LinkList &L)
{}
//显示输入的多项式
void DispPolyn(LinkList L)
{}
void Polyn(LinkList &pa,LinkList &pb)
{}
4.2 主函数 main
void main()
{
LNode *L1,*L2;
Polyn(L1,L2);
}
4.3 函数的调用关系层次结构
多项式 Polyn 用单链表定义多项式 CreatPolyn 定义一个空表 InitList 显示输入的多项式 DispPolyn。

五、 调试分析
采用单连表形式按照指数降序排列建立并输出多项式;在相加,相减的过程 中如果指数相同就执行系数相加,相减,否则就把大的项直接写入。完成两个多 项式的相加、相减;将从新得到的单连表结果输出;该算法的时间复杂度为两个 多项式的项式之和。

在这里插入图片描述

完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:

https://www.write-bug.com/article/3096.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值