单链表——多项式相加

2023-11-19

时间限制:1000ms

内存限制:256M

实验目的:

编写代码,使用两个单链表表示下面的多项式,完成两个多项式相加,并输出相加后的多项式结果。

 

实验要求:

1、单链表的类型定义如下:

typedef int datatype;//结点数据类型,假设为int
typedef struct node * pointer;//结点指针类型
struct node {       //结点结构
    datatype data;   //系数
    int exp;         //指数
    pointer next;
};
typedef pointer lklist;//单链表类型,即头指针类型

2、将A、B两个多项式相加,并输出相加后的多项式结果

实验运行示例:

Input

本实验无需input信息

Output

output:多项式A+B的结果,并以多项式方式输出

输出案例1

1x^0-1x^4-9x^10+7x^12+8x^14

 

#include<iostream>
using namespace std;
typedef int datatype;
typedef struct node * pointer;
struct node{
  datatype data;
  pointer next;
  int exp;
};
typedef pointer lklist;
lklist create1(){
	pointer head1,rear,s;
	int a[3]={1,-3,7};
	int b[3]={0,6,12};
	head1=new node;
	rear=head1;
	for(int i=0;i<3;i++){
		s=new node;
		s->data=a[i];
		s->exp=b[i];
		rear->next=s;
		rear=s;
	}
	rear->next=NULL;
	return head1;
}
lklist create2(){
	pointer head2,rear,s;
	int a[4]={-1,3,-9,8};
	int b[4]={4,6,10,14};
	head2=new node;
	rear=head2;
	for(int i=0;i<4;i++){
		s=new node;
		s->data=a[i];
		s->exp=b[i];
		rear->next=s;
		rear=s;
	}
	rear->next=NULL;
	return head2;
}
lklist add(lklist A,lklist B){
	pointer C,p,q,r;
	p=A->next;
	q=B->next;
	C=A;
	r=C;
	while(p!=NULL&&q!=NULL){
		if(p->exp<q->exp){
			r->next=p;
			r=p;
			p=p->next;
		}
		else if(p->exp==q->exp){
			p=p->next;
			q=q->next;
		}
		else{
			r->next=q;
			r=q;
			q=q->next;
		}
	}
	if(p!=NULL)
	r->next=p;
	else
	r->next=q;
	return C;
}
int main(){
	pointer head1,head2;
	pointer x1,x2;
	head1=create1();
	head2=create2();
	x1=add(head1,head2);
	x2=x1->next;
	while(x2!=NULL){
		if(x2->data>0&&x2!=x1->next)
		cout<<"+";
		cout<<x2->data<<"x^"<<x2->exp;
		x2=x2->next;
	}
}

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

单链表——多项式相加 的相关文章

随机推荐

  • 基于vue-cli3模板的axios封装项目

    为了更便捷的使用项目框架 本模板为空白项目 但是已经为大家封装了axios方法和post get请求 内有基础案例 请大家按着自己项目需要进行修改使用 axios interceptors response use response gt
  • 采样位数、采样率、波特率

    实例 16bit 16K 115200 1 采样位数 即采样值或取样值 就是将采样样本幅度量化 它是用来衡量声音波动变化的一个参数 也可以说是声卡的分辨率 它的数值越大 分辨率也就越高 所发出声音的能力越强 在计算机中采样位数一般有8位和1
  • Spring Cloud 微服务

    Spring Cloud 微服务架构介绍 单体架构 单体架构也称之为单体系统或者是单体应用 就是把系统中所有的功能 模块耦合在一个应用中的架构方式 特点 打包成一个独立的单元 导成一个唯一的 jar 包或者是 war 包 会一个进程的方式来
  • 金算盘高手论坛资料中心_3D006期 菜鸟论坛精英PK专栏 速来围观!!

    点上方 菜鸟选号论坛 点右上角 选 星标 每日上午更新 星标置顶与大神不走散 苹果是置顶 安卓是星标 点击 菜鸟选号论坛 关注我们 论坛明星版块 集全网各路高手之大乘 打造草根明星 展示舞台 同时主要是为广大关注彩友 在每一期 推出个人擅长
  • swift编程入门(非常详细)从零基础入门到精通,看完这一篇就够了

    文章目录 1 读后概述 2 语法笔记 2 1 说明 2 2 基础类型 2 3 运算符 2 4 字符与字符串 2 4 控制流 2 5 函数 2 6 闭包 2 7 枚举 结构体 类 2 8 类的构造与析构 2 9 属性监听器 2 10 类的继承
  • python 图像处理(7):对比度与亮度调整

    图像亮度与对比度的调整 是放在skimage包的exposure模块里面 1 gamma调整 原理 I Ig 对原图像的像素 进行幂运算 得到新的像素值 公式中的g就是gamma值 如果gamma gt 1 新图像比原图像暗 如果gamma
  • 毕业设计-基于微信小程序的电影推荐系统

    目录 前言 课题背景与简介 实现设计思路 一 电影推荐算法的设计与实现 二 电影推荐系统分析与设计 实现效果样例 更多帮助 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力
  • 基于情感词典的情感分析

    思路以及代码都来源于下面两篇文章 一个不知死活的胖子 Python做文本情感分析之情感极性分析 Ran Fengzheng 的博客 基于情感词典的文本情感极性分析相关代码 基于情感词典的情感分析应该是最简单的情感分析方法了 大致说一下使用情
  • http服务器_本地简易http服务器

    本地简易http服务器 下面实现一个简单的http服务器 听起来高大上的样子 其实就是网络通信加上http协议 运用上篇的网络编程的基础模型 上篇的网络通信是开两个vs程序 一个做服务器 一个做客户端 互相发送数据 http服务器其实也是同
  • 【Unity-学习-021】异步实现HTTP请求

    对Http访问操作 Unity中一般使用协程操作 但是协程有一个比较要命的要求就是所在Mono必须在场景中是激活的 所以一些操作就会被限制 所以我们就找办法替代掉协程做一些异步的操作 那就用异步方法 首先扩展一下AsyncOperation
  • java操作RabbitMQ

    文章目录 一 基本消息模型 1 导入依赖 2 准备连接工具类 3 创建消息发送者 生产者 4 创建消息接受者 消费者 5 消息确认机制 ACK 二 Work queues 1 创建消息发送者 2 创建多个消息接受者 3 测试 4 设置能者多
  • QtIFW:制作程序安装包

    程序发布方式一般有两种 1 静态编译发布 这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中 其优势是简单单一 所有的依赖库都集中在一起 其缺点也很明显 可执行程序体量较大 2 制作安装包发布 这种方式的原理也简单 就是将
  • 输入延时(Input Delay)与输出延时(Output Delay)

    一 设置输入延时 Input Delay 1 不同的路径需要使用不同的约束 2 输入延时的定义 由下图可以看出Input Delay是以上游芯片的时钟发送沿为参考 上游的输出数据到达FPGA的外部输入端口之间的延迟 输入延迟 input d
  • 你也想拥有你的个人博客吗(阿里云域名+github方案+hexo)

    虽然平时学习有写笔记的习惯 可是都没有上传过 记录一下学习日常吧 以后也会更容易整理了 因为在每个版本 对各个设备的配置情况都有一些细小的区别 希望我的记录也同时可以帮助一下需要的朋友 现在的时间点是2020 9 28 我的电脑是 MacB
  • runtime属性的读与写

    文章目录 通过ivar读 写 举例 通过ivar读 写 这里以Person类为例 来看怎么对属性值进行操作 Person类有一个属性name property nonatomic copy NSString name 对应的变量名 name
  • Stream流还可以这样用,省时又省力,你不知道的去重方法,快来一起解决这道常见的面试题吧

    下面归纳出几种常见的去重方法 使用stream流collectingAndThen 根据某一属性去重 studentList studentList stream collect Collectors collectingAndThen C
  • Solidworks的simulation组合分析显示单独零件

    具体参考以下链接 https jingyan baidu com article f96699bbe98e8e894f3c1b59 html
  • QT QTabWidget

    QTabWidget 使用 1 1 ui界面添加tabWidget 想展示的Widget 1 2 TabWidget 动态添加tab 1 3 tabWidget 动态删除tab 1 4 TabWidget 获取所有tab的界面值 2 1 T
  • 设计模式--Abstract server模式 VS Adapter 模式

    适配器类似于现实世界里面的插头 通过适配器 我们可以将分属于不同类的两种不同类型的数据整合起来 而不必去根据某一需要增加或者修改类里面的方法 Adapter mode和Proxymode的区别 Proxy的关注点是职能转移 通过引入Prox
  • 单链表——多项式相加

    时间限制 1000ms 内存限制 256M 实验目的 编写代码 使用两个单链表表示下面的多项式 完成两个多项式相加 并输出相加后的多项式结果 实验要求 1 单链表的类型定义如下 typedef int datatype 结点数据类型 假设为