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

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

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

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

3.1.1 单连表的抽象数据类型定义
ADT List{
数据对象:
D={ai|ai∈ElemSet,i=1,2,…,n,n≥0}
数据关系:
R1={| 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<欢迎来到一元多项式计算程序 "<LNode *L1,*L2;
Polyn(L1,L2);
}
各模块之间的调用关系如下:

c语言单链表_[内附完整源码和文档] 基于C语言实现的一元多项式的计算_第1张图片


四、详细设计
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。

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

c语言单链表_[内附完整源码和文档] 基于C语言实现的一元多项式的计算_第2张图片

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

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

你可能感兴趣的:(c语言单链表,一元多项式的乘法与加法运算)