两个多项式相加算法(链表实现)

2023-11-15

来源:数据结构期中考试补充题

注:该代码测试数据较少,吃过晚饭有时间再测试下改改bug QAQ
//多项式相加:
#include <iostream>
using namespace std;

class Node {//项的定义
	
public:
	int a;
	int b;
	Node* next;
	Node(int aa, int bb) {
		a = aa;
		b = bb;
		next = NULL;;
	}
};
class List{
public:
	List() {
		Creat();
	}
	Node* head;
	void Creat();
};
void List::Creat() {
	int num1, num2;
	cout << "请输入该链表元素个数:" << endl;
	int num;
	cin >> num;
	cout << "请输入组合(空格分隔即可)" << endl;
	head = new Node(1, 1);
	Node* p = head;
	while (num--) { //创建一个单链表;
		cin >> num1 >> num2;
		Node* s = new Node(num1, num2);
		p->next = s; 
		p = s;
	}
	p->next = NULL;
}
Node* Add(List &A,List &B) {
	Node* pc = A.head;
	Node* pa = A.head->next;
	Node* pb = B.head->next;
	while (pa && pb) {
		int num1 = pa->b;
		int num2 = pb->b;
		if (num1 == num2) {
			//如果指数相同,加和为0
			if (pa->a + pb->a == 0) {
				Node* p1 = pa;
				pa = pa->next;
				Node* p2 = pb;
				pb = pb->next;
				delete p1, p2;
			}
			//指数相同,加和不为0
			else {
				pa->a = pa->a + pb->a;
				pc->next = pa;
				pc = pa;
				Node* p = pb;
				pb = pb->next;
				delete(p);
			}
		}
		//如果不相同,将指数小的接入新链表:
		else {
			if (num1 < num2) {
				pc->next = pa;
				pc = pa;
				pa = pa->next;
			}
			else {
				pc->next = pb;
				pc = pb;
				pb = pb->next;
			}
		}
	}
	if (pa == NULL) {
		pc->next = pb;
	}
	else pc->next = pa;
	return A.head;
}
//表的定义:
int main() {
	cout << "创建链表A:" << endl;
	List A;
	cout << "创建链表B:" << endl;
	List B;
	Node* c=Add(A, B);
	Node* C = c->next;
	while (C != NULL) {
		cout << C->a << "*" << "X" << C->b << ' ';
		C = C->next;
	}
	return 0;
}


欢迎各位的讨论交流和批评指正:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个多项式相加算法(链表实现) 的相关文章

  • 添加 Nullable int 时保持 null?

    我想添加可为空的int 并保留null当所有值都是null 我想要这个结果 1 2 3 1 null 1 null null null O null 0 问题是 如果我将一个值与 null 相加 结果为 null int i1 1 int
  • 将 new 与 decltype 一起使用

    T t T is an implementation detail t new T want to avoid naming T to allow for flexibility t new decltype t error cannot
  • Poco c++Net:Http 从响应中获取标头

    我使用 POCO C Net 库进行 http 我想尝试制定持久缓存策略 首先 我认为我需要从缓存标头中获取过期时间 并与缓存值进行交叉检查 如果我错了 请告诉我 那么我如何从中提取缓存头httpResponse 我已经看到你可以用 Jav
  • 单元测试验证失败

    我正在运行我的单元测试PostMyModel路线 然而 在PostMyModel 我用的是线Validate
  • 如何在另一个应用程序中挂钩 api 调用

    我正在尝试挂钩另一个应用程序的 ExtTextOut 和 DrawTextExt GDI 方法调用 我知道我需要使用 GetProcAddress 来查找 gdi32 dll 中那些方法的地址 并用我的函数的地址覆盖我想要挂钩的进程中的地址
  • 在 OnModelCreating 期间设置列名称

    Issue 我目前正在尝试通过设置的属性为我的表及其列添加前缀 我正在使用实体框架核心 我已经正确地为表名添加了前缀 但我似乎无法弄清楚列的前缀 我有一种感觉 我需要使用反射 我已经留下了我的 可能很糟糕的 反思尝试 有人有办法在实体中设置
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • MFC:如何设置CEdit框的焦点?

    我正在开发我的第一个简单的 MFC 项目 但我正在努力解决一个问题 想要设置所有的焦点CEdit其中一个对话框中的框 我的想法是 当打开对话框时 焦点位于第一个编辑框上 然后使用 选项卡 在它们之间交换 我看到了方法SetFocus 但我无
  • 根据对象变量搜索对象列表

    我有一个对象列表 这些对象具有三个变量 ID 名称和值 这个列表中可能有很多对象 我需要根据ID或Name找到一个对象 并更改值 例子 class objec public string Name public int UID public
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 如何从 Rx Subscribe 回调异步函数?

    我想回调 Rx 订阅中的异步函数 例如 像那样 public class Consumer private readonly Service service new Service public ReplaySubject
  • 在 OpenGL 中渲染纹理 1 到 1

    所以我想做的是使用 OpenGL 和 C 将纹理渲染到平面上 作为显示图像的一种方式 但是我需要确保在渲染纹理时没有对纹理进行任何处理 抗锯齿 插值 平滑 模糊等 这是 OpenGL 处理渲染纹理的默认方式吗 或者是否需要设置一些标志才能禁
  • ASP.NET MVC 路由:如何从 URL 中省略“索引”

    我有一个名为 StuffController 的控制器 具有无参数索引操作 我希望从表单中的 URL 调用此操作mysite com stuff 我的控制器定义为 public class StuffController BaseContr
  • 逆向工程 ASP.NET Web 应用程序

    我有一个 ASP NET Web 应用程序 我没有源代码 该 bin 包含 10 个程序集和一个 compiled 文件 我在 App Code dll 上使用 Reflector 它向我显示了类和命名空间之类的东西 但它太混乱了 有没有什
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne

随机推荐

  • Kubernetes(k8s)读记(一)

    Kubernetes 概述 Kubernetes 源于希腊语 意为 舵手 或 飞行员 k8s 这个缩写是因为 k 和 s 之间有八个字符的关系 Google 在 2014 年开源了 Kubernetes 项目 开源 用于管理云平台中多个主机
  • RabbitMQ-死信队列

    文章目录 前言 简介 使用Java代码创建和配置死信队列 死信队列的优缺点 总结 前言 当涉及到处理消息队列中无法正常消费的消息时 RabbitMQ的死信队列 Dead Letter Queue DLQ 是一个关键概念 在这篇博客中 我们将
  • 个人买保险扫盲

    1 购买保险原则总结 一般人都是有医保的 小孩也可以去社区买 这个是最基础的保障 一定要买 推荐的商业保险顺序 意外险 医疗险 gt 重疾险 gt 定期寿险 然后再是其他种类的保险等 意外和重大疾病是最有可能突然需要大笔资金花费的 对于普通
  • 图像识别中——目标分割、目标识别、目标检测和目标跟踪的区别

    计算机视觉旨在识别和理解图像 视频中的内容 包含四大基本任务 分类 图a 定位 检测 图b 语义分割 图c 和实例分割 图d 这四个任务需要对图像的理解逐步深入 给定一张输入图像 图像分类任务旨在判断该图像所属类别 目标定位是在图像分类的基
  • WebLogic Server 远程代码执行漏洞复现 (CVE-2023-21839)

    1 产品简介 Oracle WebLogic Server是一个统一的可扩展平台 用于在本地和云端开发 部署和运行企业应用程序 例如 Java WebLogic Server提供了Java Enterprise Edition EE 和Ja
  • Chatgpt介绍及搭建步骤

    ChatGPT是一个基于自然语言处理技术的聊天机器人 它使用了深度学习和语义分析技术 可以与用户进行自然 流畅的对话 ChatGPT可以回答各种问题 包括常见问题 娱乐 健康 技术 旅游 金融等领域 ChatGPT的核心技术是GPT Gen
  • java用正则表达式脱敏手机号

    一种正则形式 在Java开发中有时候需要对敏感字段数据脱敏 废话不多说 直接上代码 脱敏手机号 param str return 脱敏后字符串 public static String maskPhone String str return
  • Java变量的作用域:静态变量、全局变量和局部变量

    变量的作用域规定了变量所能使用的范围 只有在作用域范围内变量才能被使用 根据变量声明地点的不同 变量的作用域也不同 根据作用域的不同 一般将变量分为不同的类型 成员变量和局部变量 下面对这几种变量进行详细说明 成员变量 Java 的成员变量
  • Linux环境下PostgreSQL9.6+PostGIS2.5安装

    空间数据库原理上机实习要用 安了好久终于成功辽 由于在腾讯云上买好了服务器 所以直接远程登录了 一 PostgreSQL安装 1 导入yum源 sudo yum install y https download postgresql org
  • C++实现定时器

    定时器的主要数据 1 一个线程变量 保存定时器线程 2 一个互斥锁 配合条件变量使用 3 一个条件变量 结合互斥锁 可以是线程不执行任务时 睡眠一段时间 在退出调用时 可以唤醒线程完成退出 4 定时执行函数 具体的定时执行业务操作 5 间隔
  • 1核2G/2核4G的服务器centos安装哪个版本

    虽然目前的centos 8系统将会在今年停止更新维护 所以很多人担心和纠结该选择什么系统作为自己的服务器系统呢 不管是服务器是计算型共享型还是通用型服务器配置 都可以选择centos 8 x 具体关于通用型计算型和共享型服务器的介绍可以参考
  • python读取oracle数据库数据报编码错误

    UnicodeDecodeError gbk codec can t decode byte 0xa7 in position 2 illegal multibyte sequence 解决方法 根据数据库不同的编码设定 编写的python
  • webview中h5高德定位没有权限的问题Geolocation permission Denied

    网上都是说添加这两个东西 settings setDatabaseEnabled true settings setDomStorageEnabled true mWebView setWebChromeClient new WebChro
  • 02-工厂模式

    文章目录 1 简单工厂模式 2 工厂方法模式 3 抽象工厂模式 4 模式扩展 5 工厂模式在JDK中的应用 需求 设计一个咖啡店点餐系统 设计一个咖啡类 Coffee 并定义其两个子类 美式咖啡 AmericanCoffee 和拿铁咖啡 L
  • qt5中信号和槽连接,对于多种参数重载的处理

    因为QSpinBox的valueChanged信号有重载 为避免二义性 需要通过声明函数指针方式 来进行信号和槽的连接 void QSpinBox p int QSpinBox valueChanged 函数指针p前要加类名作用域符号 co
  • 假设u~N(0, 1), X

    假设 N 0 1 X
  • API HOOK

    本来这个方法是API HOOK中经常用到 但是我想试试在单个程序中实现 为何运行时总是错误 本来是一个函数跳另外一个的 我又后退了一步 只是用一个函数自己的前面8字节修改自己 还是会错误了 void CJmpDlg OnButton1 对应
  • JDBC 连接池配置文件 解决了already close问题

    XML文件 DataSource配置
  • 生命周期BeanPostProcessor(3)---Spring源码从入门到精通(九)

    上篇文章主要介绍了Bean生命周期 bean生命周期 创建bean gt 初始化init gt 销毁destory 而初始化和销毁是可以用 Bean指定的 或者用 PostCoustruct preDestory注解 或者用Initiali
  • 两个多项式相加算法(链表实现)

    来源 数据结构期中考试补充题 注 该代码测试数据较少 吃过晚饭有时间再测试下改改bug QAQ 多项式相加 include