顺序表存储一元多项式,并实现两个多项式相加运算(C++,无序输入)

news2025/1/11 7:02:55

         采用顺序表存储一元多项式,并实现两个多项式相加运算,要求:

1)创建存储多项式的有序表(按无序输入)hahb

2)求hahb相加产生多项式hc

3)输出多项式hahbhc

#include<iostream>
#include<algorithm>
using namespace std;
typedef struct node
{
	int coef;//系数
	int expn;//指数
}Elem;
typedef struct node1
{
	Elem* base;
	int length;
}Ss;
bool cmp1(node a, node b)
{
	return a.expn < b.expn;//指数大的往后
}
void Init(Ss& s)//初始化
{
	s.base = new Elem[1000];
	s.length = 0;
}
void Create(Ss& s)//创建多项式
{
	cout << "输入项数:";
	cin >> s.length;
	cout << "先输指数再输系数:" << endl;
	for (int i = 0; i < s.length; i++)
		cin >> s.base[i].expn >> s.base[i].coef;
	sort(s.base, s.base + s.length, cmp1);//根据指数升序排序
}
void Add(Ss& ha, Ss& hb, Ss& hc)//合并多项式
{
	int i = 0, j = 0, k = 0;
	while (ha.length && hb.length)
	{
		hc.length++;
		if (ha.base[i].expn == hb.base[j].expn)//指数相等
		{
			ha.length--, hb.length--;
			int sum = ha.base[i].coef + hb.base[j].coef;
			if (sum == 0)
				continue;
			else
			{
				hc.base[k].coef = sum;
				hc.base[k++].expn = ha.base[i].expn;
			}
			i++, j++;
		}
		else if (ha.base[i].expn < hb.base[j].expn)//ha指数小于hb指数
		{
			ha.length--;
			hc.base[k].coef = ha.base[i].coef;
			hc.base[k++].expn = ha.base[i].expn;
			i++;
		}
		else//hb指数小于ha指数
		{
			hb.length--;
			hc.base[k].coef = hb.base[j].coef;
			hc.base[k++].expn = hb.base[j].expn;
			j++;
		}
	}
	if (ha.length == 0)//ha连完 剩下连hb
	{
		for (int d = j; d < hb.length; d++)
		{
			hc.base[k].coef = hb.base[d].coef;
			hc.base[k++].expn = hb.base[d].expn;
		}
	}
	else if (hb.length == 0)//hb连完 剩下连ha
	{
		for (int d = j; d < ha.length; d++)
		{
			hc.base[k].coef = ha.base[d].coef;
			hc.base[k++].expn = ha.base[d].expn;
		}
	}
}
void Print(Ss s)//输出多项式
{
	int i;
	cout << "f=";
	for (i = 0; i < s.length - 1; i++)
	{
		if (s.base[i].expn == 0)
			cout << s.base[i].coef << " + ";
		else
			cout << s.base[i].coef << "x^" << s.base[i].expn << " + ";
	}
	cout << s.base[i].coef << "x^" << s.base[i].expn;
	cout << endl;
}
int main()
{
	Ss ha, hb, hc;
	Init(ha);
	Create(ha);
	Init(hb);
	Create(hb);
	cout << "多项式1:" << endl;
	Print(ha);
	cout << "多项式2:" << endl;
	Print(hb);
	Init(hc);
	Add(ha, hb, hc);
	cout << "合并多项式:" << endl;
	Print(hc);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入侵防御系统(IPS)网络安全设备介绍

入侵防御系统&#xff08;IPS&#xff09;网络安全设备介绍 1. IPS设备基础 IPS定义 IPS&#xff08;Intrusion Prevention System&#xff09;是一种网络安全设备或系统&#xff0c;用于监视、检测和阻止网络上的入侵尝试和恶意活动。它是网络安全架构中的重要组成部分&…

基于虚拟同步发电机的孤岛逆变器控制策略(孤岛VSG)(Simulink仿真实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

屏幕分辨率:PC / 手机 屏幕常见分辨率,前端如何适配分辨率

一、常见的PC屏幕分辨率 序号水平像素点数和垂直像素点数也被称为常见显示器11366 768720p 或 HD Ready常见于笔记本电脑和低端桌面显示器21920 10801080p 或 Full HD / 全高清高端笔记本电脑和中高档台式机32560 14402K 分辨率常见于高端笔记本电脑和高端台式机43840 216…

Linux读写锁的容易犯的问题

Linux读写锁的容易犯的问题 读写锁是互斥锁之外的另一种用于多线程之间同步的一种方式。 多线程对于一个共享变量的读操作是安全的&#xff0c; 而写操作是不安全的。如果在一个读很多而写很少的场景之下&#xff0c;那么使用互斥锁将会阻碍大量的线程安全的读操作的进行。在…

机器学习算法基础--KNN分类算法

文章目录 1.KNN算法原理介绍2.KNN分类决策原则3.KNN度量距离介绍3.1.闵可夫斯基距离3.2.曼哈顿距离3.3.欧式距离 4.KNN分类算法实现5.KNN分类算法效果6.参考文章与致谢 1.KNN算法原理介绍 KNN&#xff08;K-Nearest Neighbor&#xff09;工作原理&#xff1a; 在一个存在标签的…

Stable Diffusion 图片换脸插件Roop保姆教程 附错误解决办法和API使用

换脸技术已经不是新鲜事物,但如何实现简单、快速、高效的换脸操作呢?Roop插件正是为解决这一问题而生的。 sd-webui-roop 插件适用于已经本地部署了SD的用户。相较于传统的换脸技术,Roop插件几乎不需要训练,只需一张照片,即可在10秒内完成换脸。 但是要注意到是必须注意…

Docker搭建MySQL8.0主从复制(一主一从)

0. 配置说明 宿主机使用的版本为19045的win10专业版&#xff0c;MySQL使用的是8.0&#xff0c;Docker容器使用Linux。 1. 安装Docker Desktop 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能&#xff0c;CMD中运行&#xff1a; “Docker Desktop Installe…

软件测试面试之问——角色扮演

作为软件测试工程师&#xff0c;在求职面试中经常会被问到这样一个问题&#xff1a;你认为测试工程师在企业中扮演着什么样的角色呢&#xff1f; 某度百科是这样概括的&#xff1a;“软件测试工程师在一家软件企业中担当的是‘质量管理’角色&#xff0c;及时发现软件问题并及…

MySql8.0 + Qt 对数据库操作 - 初窥篇1

一、开发背景 32 位程序连接 64 位的数据库实例 二、开发环境 QtCreator4.8.2 Qt5.12.2 MySql8.0.33 三、实现步骤 1、测试驱动代码 测试结果 int main(int argc, char *argv[]) {QSqlDatabase db QSqlDatabase::addDatabase("QMYSQL");db.setHostName("…

CTF之信息收集

什么是信息收集 信息收集是指通过各种方式获取所需要的信息&#xff0c;以便我们在后续的渗透过程更好的进行。最简单的比如说目标站点的IP、中间件、脚本语言、端口、邮箱等等。我觉得信息收集在我们参透测试的过程当中&#xff0c;是最重要的一环&#xff0c;这一环节没做好…

笔记01:随机过程——随机游动

一、伯努利随机过程 1. n次伯努利实验中&#xff08;x1&#xff09;发生的总次数Yn&#xff1a; (二项分布) 2. 伯努利实验中事件第一次发生的时间L1&#xff1a; &#xff08;几何分布&#xff09; 3. n次伯努利实验中事件第k次发生的时间Lk&#xff1a; &#xff08;帕斯卡分…

科技云报道:押注向量数据库,为时过早?

科技云报道原创。 在大模型的高调火热之下&#xff0c;向量数据库也获得了前所未有的关注。 近两个月内&#xff0c;向量数据库迎来融资潮&#xff0c;Qdrant、Chroma、Weaviate先后获得融资&#xff0c;Pinecone宣布1亿美元B轮融资&#xff0c;估值达到7.5亿美元。 东北证券…

小谈设计模式(22)—单例模式

小谈设计模式&#xff08;22&#xff09;—单例模式 专栏介绍专栏地址专栏介绍 单例模式点睛所在优缺点分析优点确保只有一个实例全局访问点节省资源线程安全 缺点难以扩展对象的生命周期单一职责原则隐藏依赖关系 Java程序实例实例a分析实例b&#xff0c;更安全分析优化 ——“…

Git 学习笔记 | Git 基本理论

Git 学习笔记 | Git 基本理论 Git 学习笔记 | Git 基本理论Git 工作区域Git 工作流程 Git 学习笔记 | Git 基本理论 Git 工作区域 Git本地有三个工作区域&#xff1a;工作目录&#xff08;Working Directory&#xff09;、暂存区(Stage/Index)、资源库(Repository或Git Direc…

【Kubernetes】当K8s出现问题时,我们可以从哪些方面排查出

前言 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kub…

高级 I/O【Linux】

阅读前导&#xff1a; “高级 I/O”处于知识树中网络和操作系统的最后&#xff0c;因此本文默认读者有计算机网络和操作系统的基础。 1. 什么是 I/O 下面以“流”&#xff08;stream&#xff09;和冯诺依曼体系架构的视角来简单回顾一下什么是 I/O&#xff1a; I/O可以理解…

bin-editor-next实现josn序列化

线上链接 BIN-EDITOR-NEXThttps://wangbin3162.gitee.io/bin-editor-next/#/editor gitee地址bin-editor-next: ace-editor 的vue3升级版本https://gitee.com/wangbin3162/bin-editor-next#https://gitee.com/link?targethttps%3A%2F%2Funpkg.com%2Fbin-editor-next%2F 实现…

规则引擎(JVS-rules):从应用到场景的全面解析

JVS-RULES规则引擎是一款可视化的业务规则设计器&#xff0c;它的核心功能在于可集成多种数据源&#xff0c;包括多种类型数据库和API&#xff0c;将数据进行界面可视化的加工处理后&#xff0c;形成策略节点所需要的各种变量&#xff0c;然后通过规则的可视化编排&#xff0c;…

2.3 物理层下面的传输媒体

思维导图&#xff1a; 前言&#xff1a; 2.3 物理层下的传输媒体 --- **传输媒体概述**&#xff1a; 传输媒体&#xff0c;又称传输介质或传输媒介&#xff0c;它是连接发送器与接收器之间的物理路径&#xff0c;扮演着在这两者之间传递数据的角色。 --- **分类**&#x…

李宏毅 2022机器学习 HW3 boss baseline 上分记录

作业数据是所有数据都有标签的版本。 李宏毅 2022机器学习 HW3 boss baseline 上分记录 1. 训练数据增强2. cross validation&ensemble3. test dataset augmentation4. resnet 1. 训练数据增强 结论&#xff1a;训练数据增强、更长时间的训练、dropout都证明很有效果&…