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);

}

各模块之间的调用关系如下:

268cc68262e6

在这里插入图片描述

四、详细设计

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。

五、 调试分析

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

268cc68262e6

在这里插入图片描述

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值