两个链式存储的一元多项式乘法运算算法

2023-11-08

#include<iostream>
using namespace std;
typedef struct PolyNode * Polynomial;
struct PolyNode {
	int coef;
	int expon;
	Polynomial link;
};
void Attach(int c, int e, Polynomial * Rear)
{
	Polynomial P = new struct PolyNode;
	P->coef = c;
	P->expon = e;
	P->link = NULL;
	(*Rear)->link = P;
	*Rear = P;
}
Polynomial ReadPoly()
{
	int N, c, e;
	Polynomial P = new struct PolyNode;
	Polynomial Rear,t;
	P->link = NULL;
	Rear = P;
	cin >> N;
	cin.get();
	while (N--)
	{
		cin >> c;
		cin.get();
		cin >> e;
		cin.get();
		Attach(c, e, &Rear);
	}
	t = P;
	P = P->link;
	delete t;
	return P;
}
Polynomial Mult(Polynomial P1, Polynomial P2)
{
	int c, e;
	Polynomial t1, t2, P,Rear,t,m,a;
	t1 = P1;
	t2 = P2;
	P = new struct PolyNode;
	P->link = NULL;
	Rear = P;
	if (!P1 || !P2)return NULL;
	else
	{
		while (t2)
		{
			Attach(t2->coef *t1->coef, t2->expon + t1->expon, &Rear);
			t2 = t2->link;
		}
		t1 = t1->link;

		while (t1)
		{
			t2 = P2;
			Rear = P;
			while (t2)
			{
				c = t1->coef *t2->coef;
				e = t1->expon + t2->expon;

				while (Rear->link &&Rear->link->expon > e)Rear = Rear->link;

				if (Rear->link &&Rear->link->expon == e)
				{
					if (Rear->link->coef + c)Rear->link->coef += c;
					else
					{
						t = Rear->link;
						Rear->link = t->link;
						delete t;
					}
				}
				else       //expon<e
				{
					a = new struct PolyNode;
					a->coef = c;
					a->expon = e;
					a->link = Rear->link;
					Rear->link=a;
					Rear = Rear->link; //注意这里要更新Rear的值,保证在Rear->link
				}

				t2 = t2->link;
			}
			t1 = t1->link;
		}
	}
	m = P;
	P = P->link;
	delete m;
	return P;
}
void Print(Polynomial P)
{
	if (!P)return; //在函数中间返回就要用return
	else
	{
		while (P)
		{
			cout << P->coef << " " << P->expon << " ";
			P = P->link;
		}
	}
}
int main()
{
	Polynomial P1, P2, PP;
	P1 = ReadPoly();
	P2 = ReadPoly();
	PP = Mult(P1, P2);
	Print(PP);
	cin.get();
	return 0;
}
先写void main(),看看用了什么子函数,写好之后再写其他的函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个链式存储的一元多项式乘法运算算法 的相关文章

  • 保证文件名唯一(java)

    问题描述 给你一个长度为 n 的字符串数组 names 你将会在文件系统中创建 n 个文件夹 在第 i 分钟 新建名为 names i 的文件夹 由于两个文件 不能 共享相同的文件名 因此如果新建文件夹使用的文件名已经被占用 系统会以 k
  • Centos/Linux在线环境下载安装包,到离线环境安装,并解决依赖问题

    在线环境下载rpm包 我们以yum utils包为例 在线环境使用下面的代码安装 sudo yum install y yum utils 离线环境需要的是安装包 因此下载yum utils的安装包的代码 mkdir ypm packet

随机推荐

  • 开关电源环路稳定性分析(01)-Buck变换器

    大家好 这里是大话硬件 说到开关电源不得不提的就是开关的环路稳定性 但是这一块目前用的DC DC芯片 很多厂家在芯片内部都已经做好了 所以对于使用的人来说 即使不太关注环路的稳定 按照手册中推荐的值设计产品也能正常使用 当然 仅仅是按照手册
  • 可充电点电池和不可充电电池区分?

    看到网上很多人都在问 碳性电池能充电吗 回答很明确 不可以 我们生活中使用的5号电池和7号电池分为可充电和不可充电两种 不可充电的5号电池和7号电池有碳性电池和碱性电池 碳性电池是一次电池 即干电池 是不能充电的 碳性电池价格比碱性电池便宜
  • Unity导入package简单操作流程

    Unity导入package简单操作流程 前言 在Unity 实际开发工作中 需要将一些现成的程序包或者插件导入到自己的工厂里 方便自己使用其中的一些现成的功能 方便自己开发 节约工作时间 这篇博客简单介绍下Unity导入package简单
  • C++ 判断磁盘是否为可移动磁盘

    传入参数path F bool isUsbDrv const wchar t path include
  • 数据库恢复技术

    数据库恢复技术和并发控制技术 事务 故障 1 事物内部的故障 2 系统故障 3 介质故障 4 计算机病毒 恢复的实现技术 1 数据存储 2 登录日志文件 各故障对应的恢复策略 1 事物故障的恢复 2 系统故障的恢复 3 介质故障的恢复 检查
  • 【华为机试刷题笔记】HJ14-字符串排序

    题目描述 给定 n 个字符串 请对 n 个字符串按照字典序排列 数据范围 1 n 1000 1 leq n leq 1000 1 n 1000 字符串长度满足
  • uniapp map 请求接口之后数据不渲染问题

    uniapp map 请求接口之后数据不渲染问题 我先说我遇到的问题 我使用uniapp 的 map 组件 组件所有绑定数据都有一个初始化 之后在 mounted 中请求服务器数据 不过在 map 组件里面没有渲染请求到的数据 使用 set
  • 千兆网线做法和网线接法注意事项

    据市场调查 目前千兆网线已经很 普遍了 但很多朋友对千兆网线水晶头接法还不是很了解 在制作网线的过程中会遇到各式各样的问题 有时会造成无法打开网页 在动手之前 我们要对于网线的制作有一个正确的认识 从而制作出我们需要的网线 网线由一定距离长
  • 区块链系列-----加密算法汇总

    背景 区块链背景下 对密码学技术要求需要有很深的研究 笔者以java语言为例 搜罗各种加密算法的相关使用 github地址 https github com niyuelin1990 mycrypto 简介 搜罗各种加密算法 电子邮件传输算
  • docker使用指南

    1 安装docker 使用如下命令可以安装docker 安装成功后docker version可以查看到docker的client和server信息 sudo apt install docker docker io y 为普通用户添加权限
  • mysql json类型最大长度限制_MySQL json 数据类型

    必须要5 7以上版本才能使用 写在开头 mysql json 的功能很强大 只是用来当一个储存数据的字段 就没什么意义了 使用proto做交互的话 只要JSON 写得好 用proro Unmarshal 就可以很方便的转换类型 可以精简很多
  • github 项目的基本结构以及git的使用方法

    github 项目的基本结构以及git的使用方法 介绍 根据README md 一般都在下面 阅读规则 每个团队根据队伍内部技术人员配置选择课题 课题在docs 目录下 对于docs 下非本组选择的课题文件不要进行任意修改 docs 下课题
  • 转onnx包问题

    pip install onnx 1 7 0 i https pypi tuna tsinghua edu cn simple 其实这一步已经可以了 pip install coremltools YOLOv5的pytorch模型文件转换为
  • redis的事务和watch机制

    这里写目录标题 第一章 redis事务和watch机制 1 1 redis事务 事务的三大命令 语法 开启事务 multi 语法 执行事务 exec 语法 取消事务 discard 1 2 redis事务的错误和回滚的情况 1 3 watc
  • Es6数组新增方法与字符串新增方法和新增数据类型

    1 数组新增方法 map方法 将数组中每一个元素依次取出 进行遍历 返回一个新的数组 let movies id 1 name 大话西游 author xxxx imgUrl http xxx douban com 1 jpg id 2 n
  • AST-解混淆 赋值语句嵌套三目表达式的优化

    处理前 0x4ae6ff 0x41bc28 4957228979 650037875 处理后 0x41bc28 0x4ae6ff 4957228979 0x4ae6ff 650037875 通用插件编写规则 const TransCondi
  • 2018年LeetCode高频算法面试题刷题笔记——搜索二维矩阵 II(开始之前)

    1 解答之前的碎碎念 这个题一开始我想的很简单 想着是个二维的二分查找 然后提交代码 果不其然出错了 因为并不能保证第i 1行的每个元素都大于第i行 不过想到了递归 也算是有点进步 虽然最后用递归写了一个没有通过 但是自己在vs里测试的没问
  • 论文快速回顾笔记 —— Supressing Uncertainties for Large-Scale FER

    前言 这是之前因为做项目而读过的一篇CVPR2020论文 有些细节还是挺有意思的 最近回顾一下 顺便做下笔记 以供后续查阅 Paper Suppressing Uncertainties for Large Scale Facial Exp
  • Uni-App开发BLE低功耗蓝牙流程

    Uni App开发BLE低功耗蓝牙步骤 示例文件已上传gitee https gitee com yan rookie uniapp bluetooth git 如果对你有记得点个赞哦 注 微信小程序同样适用 只需吧前缀uni 修改为wx
  • 两个链式存储的一元多项式乘法运算算法

    include