一、概述

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

}

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

在这里插入图片描述

四、详细设计

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技术共享平台 上,需要的请自取:

c语言 一元多项式乘法,[内附完整源码和文档] 基于C语言实现的一元多项式的计算...相关推荐

  1. [内附完整源码和文档] 基于C语言的校运动会项目管理系统

    前言 随着计算机技术的普及与提高,越来越多的人使用计算机,计算机以其强大的性能价格优势给人们的工作.学习和生活带来极大的方便.计算机代替人工处理一些事务已成为必然.整个人类社会已进入高度信息化,人们对 ...

  2. java 教室借用管理系统_[内附完整源码和文档] 基于JAVA语言的学生选课信息管理系统...

    摘 要 本系统运用Java面向对象的方法设计而成. 近年来,学生选课系统越来越在高校学生群体中得到普及,其所承担的功能也变得越来越丰富,所起到的作用也变得越来越重要,在被学校学生重视的同时,也意味着它 ...

  3. 矩阵化为行最简形矩阵计算器_[内附完整源码和文档] 基于C++的小型特殊计算器...

    1.设计内容 实现一个特殊的计算器,可以实现复数.有理数.矩阵和集合的特殊计算.程序可以实现复数.有理数的加.减.乘.除,可以实现矩阵的加法.减法和乘法运算,也可以实现集合的求交集.并集.子集的运算. ...

  4. [内附完整源码和文档] 基于JSP的网上订餐管理系统的设计与实现

    摘 要 随着科学技术与经济的快速发展,网络信息技术也有了显著的提升与进步,当今的社会是一个集数字化,网络化,信息化的,并且是以网络为核心的现代化社会.伴随信息互联网的高速成长,使得互联网应用也走进家家 ...

  5. [内附完整源码和文档] 基于Android的手机音乐播放器的设计与实现

    摘 要 随着Android系统和移动互联网的快速崛起,手机已经成为人们生活不可缺的一部分,在现代人的生活中,人们生活节奏的加快,生活压力越来越大,碎片化的时间越来越多,那么一个可以在碎片化的时间内调节 ...

  6. [内附完整源码和文档] 基于Android网络聊天室的设计与实现

    前 言 随着我国科技水平的提高和移动通讯的飞速发展与普及,人们通过移动网络可做的事情越来越多,人们之间的沟通不在局限于面对面的对话,人们通过手机可以很方便的上网并通过手机上的APP进行聊天这样既节省话 ...

  7. [内附完整源码和文档] 基于SSH网上商城的设计与实现

    摘 要 本文讲述了基于SSH框架的网上商城购物系统的设计与实现.所谓的网上商城购物系统是通过网站推广互联企业的商品和技术服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和订单处理功能. ...

  8. d3.js 旋转图形_[内附完整源码和文档] 基于Qt实现的图形系统

    一.概述 本系统拟完成一个图形系统,对多种常见图形进行基本操作 系统功能 二维图形的输入:可输入或全部清除不同颜色的直线.矩形.圆.椭圆.多边形.曲线.铅笔工具 二维图形的编辑:对于直线.矩形.圆.椭 ...

  9. 投票源码程序_[内附完整源码和文档] 基于JSP实现的影视创作论坛系统

    摘 要 随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评.解 ...

最新文章

  1. 内存分配器设计的演进
  2. 当前主要使用的python版本_如何获取当前使用的Python版本信息?(代码示例)
  3. python为什么叫爬虫?Python和爬虫有什么关系?
  4. Inline Method(内联函数)
  5. 头条终面:写个消息中间件
  6. django 1.8 官方文档翻译:13-1-3 密码管理
  7. uniapp ---- 树组件
  8. android-- apktool反编译工具使用详解
  9. 全向轮机器人左向直线运动分析
  10. 第四步_安装gcc交叉编译工具
  11. a 算法 c语言实现,a最短路径算法地C语言实现.PDF
  12. CAD迷你看图2019破解版|CAD迷你看图2019R5中文破解版下载
  13. Java方法 (含计算器代码)
  14. 用 Dev-C++ 编写简单的平均数/中位数/众数/方差/一元线性回归方程计算器(附带控制台颜色设置,选择界面)
  15. 青囊如可授 从此访鸿蒙的意思,有关于中元节的诗内容
  16. 部署DoraCloud实现桌面虚拟化,一款非常简单方便的桌面虚拟化管理平台
  17. vue 跳转html页面,vue项目实现页面的跳转
  18. Ada的故事(转载)
  19. openGL增强表面细节--凹凸贴图
  20. 2022年常见遥感类期刊JCR分区与影响因子汇总

热门文章

  1. 鸿蒙应用案例:Ability应用与管理
  2. 《天天数学》连载27:一月二十七日
  3. 安卓第二阶段实训预备案例:访问媒体库音频数据
  4. 统计学基础学习笔记:概率与概率分布
  5. Scala学习笔记01:Scala概述、安装配置、简单使用
  6. bzoj4513 [Sdoi2016]储能表 dp
  7. 2017.10.9 找相同字符 失败总结
  8. android解析布局树,Android Viewtreeobserver解析
  9. Abp连接多个数据源
  10. CentOS7环境下搭建Kibana