数据结构(线性表的链式实现):稀疏多项式

server/2025/1/21 7:30:22/
#include <iostream>
//稀疏多项式合并
typedef struct PNode
{int expn;//指数float  coef;//系数struct PNode *next;
}PNode,*Polyn;
void create_polyn(Polyn &s,int n)
{s=new PNode ;//头节点s->next=nullptr;PNode *q=new PNode;PNode *pre=new PNode;q=s;for (int i = 0; i < n; ++i) {PNode *e=new PNode; //局部变量保存新节点std::cin>>e->coef>>e->expn;pre=s;//q的前驱q=s->next;//每次选位置前,q都要指向首元结点while (q&&q->expn<e->expn){pre=q;q=q->next;}//插入ee->next=q;pre->next=e;}
}
void Add_Polyn(Polyn &a,Polyn &b)
{
//相同指数,对应系数加,不同指数,小的先放,合并到aPNode *ap=new PNode ;PNode *bp=new PNode ;PNode *apre=new PNode ;PNode *bpre=new PNode ;ap=a->next,bp=b->next;apre=a,bpre=b;float  sum;while (ap&&bp){PNode *node;if(ap->expn==bp->expn){//指数相等,系数相加不等于0和等于0sum = ap->coef + bp->coef;if (sum!=0) {ap->coef = sum;node=bp;bpre->next=bp->next;bp = bp->next;ap = ap->next;apre = apre->next;delete node;} else {node=ap;apre->next = ap->next;ap = ap->next;delete node;bpre->next = bp->next;node=bp;bp = bp->next;delete node;}}else if(ap->expn>bp->expn){bp->next=ap;apre->next=bp;apre=bp;bpre=bp;bp=bp->next;} else{apre=ap;ap=ap->next;}}
//剩下的while (bp){ap->next=bp;bp=bp->next;}
}
void output(Polyn a)
{a=a->next;while (a){printf("%0.2f %d  ",a->coef,a->expn);a=a->next;}printf("\n");}
int main() {//两个稀疏多项式a,bPolyn a,b;int a_len,b_len;std::cin>>a_len;std::cin>>b_len;create_polyn(a,a_len);create_polyn(b,b_len);output(a);output(b);Add_Polyn(a,b);output(a);return 0;
}

input 

c*x^y 输入系数c,指数y

4 3
3 0 2 2 -5 1 7 3
5 0 10 1 -2 2


http://www.ppmy.cn/server/160112.html

相关文章

Linux手写FrameBuffer任意引脚驱动spi屏幕

一、硬件设备 开发板&#xff1a;香橙派 5Plus&#xff0c;cpu&#xff1a;RK3588&#xff0c;带有 40pin 外接引脚。 屏幕&#xff1a;SPI 协议 0.96 寸 OLED。 二、需求 主要是想给板子增加一个可视化的监视器&#xff0c;并且主页面可调。 平时跑个模型或者服务&#xff0c;…

使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比

“GENERATIVE MODELS FOR FINANCIAL TIME SERIES DATA: ENHANCING SIGNAL-TO-NOISE RATIO AND ADDRESSING DATA SCARCITY IN A-SHARE MARKET” 论文地址&#xff1a;https://arxiv.org/pdf/2501.00063 摘要 金融领域面临的数据稀缺与低信噪比问题&#xff0c;限制了深度学习在…

源码编译http

1.下载源码包上传到linux中 2.编译源码包安装apache软件 安装软件&#xff1a;yum install gcc gcc-c make -y 解压&#xff1a;tar xf httpd-2.4.62.tar.bz2 -C /usr/local/src/ 指定组和用户&#xff1a;groupadd -r -g 48 apache useradd -r -u 48 -g 48 -c "Apache …

基于Ubuntu22.04安装SVN服务器

基于Ubuntu22.04安装SVN服务器 1.安装SVN服务器2.修改SVN服务器版本库目录3.调整SVN配置4.重启SVN服务5.安装TortoiseSVN 1.安装SVN服务器 确认uubuntu是否已经安装了SVN命令&#xff0c;如果没安装&#xff0c;使用对应的命令进行安装 svn //查看命令是否存在 s…

element-ui textarea备注 textarea 多行输入框

发现用这个组件&#xff0c;为了给用户更好的体验&#xff0c;要加下属性 1. 通过设置 autosize 属性可以使得文本域的高度能够根据文本内容自动进行调整&#xff0c;并且 autosize 还可以设定为一个对象&#xff0c;指定最小行数和最大行数。:autosize"{ minRows: 3, ma…

Pandas 数据分析(二)【股票数据】

股票数据分析 写在前面题目背景021 加载股票数据到CSV文件022 查看基本信息和数据统计023 更改索引列为普通数据列024 给数据添加月份和年份025 计算每年的平均收盘价026 找到收盘价最低的数据行027 筛选出部分数据列028 设置日期列为索引列029 删除不需要的数据列030 对数据列…

如何使用 JSONP 实现跨域请求?

以下是使用 JSONP 实现跨域请求的步骤&#xff1a; 实现步骤&#xff1a; 1. 客户端设置 在客户端&#xff0c;你需要创建一个 <script> 标签&#xff0c;并将其 src 属性设置为跨域请求的 URL&#xff0c;并添加一个 callback 参数。这个 callback 参数将包含一个函数…

STM32补充——FLASH

目录 1.内部FLASH构成&#xff08;F1&#xff09; 2.FLASH读写过程&#xff08;F1&#xff09; 2.1内存的读取 2.2闪存的写入 2.3FLASH接口寄存器&#xff08;写入 & 擦除相关&#xff09; 3.FLASH相关HAL库函数简介&#xff08;F1/F4/F7/H7&#xff09; 4.编程实战 …