数据结构 一元多项式加减法计算器

cpp;gutter:true;</p> <h1>include</h1> <p>using namespace std;</p> <p>struct Node//定义双向链表,方便降幂输出</p> <p>{</p> <pre><code>int C; int index; struct Node*prior; struct Node*next; </code></pre> <p>};</p> <p>void init(struct Node* &List)</p> <p>{</p> <p>List=(struct Node*)malloc(sizeof(struct Node));</p> <pre><code>List->next=NULL; </code></pre> <p>}</p> <p>void Sort(struct Node<em> List,struct Node</em>p)//链表幂从小到大排序,进来一个排一个</p> <p>{</p> <pre><code>struct Node*p1,*p2; int flag=0; if(List->next==NULL) { p->next=List->next; List->next=p; } else { p1=List; p2=List->next; while(p2!=NULL) { if(p->indexindex) { p1->next=p; p->next=p2; flag=1; break; } else if(p->index==p2->index) { p2->C+=p->C; flag=1; break; } else { p1=p2; p2=p2->next; } } if(flag==0) { p1->next=p; p->next=NULL; } } </code></pre> <p>}</p> <p>void Addition(struct Node<em>List1,struct Node</em>List2,struct Node*List3)//链表相加</p> <p>{</p> <pre><code>struct Node*p1,*p2,*p3,*p; p1=List1->next; p2=List2->next; p3=List3;//有意思 List3->next=NULL;//避免运行加减函数互相影响 while(p1!=NULL&&p2!=NULL) { p=(struct Node*)malloc(sizeof(struct Node)); p->next=NULL; if(p1->index==p2->index) { if(p1->C+p2->C!=0)//链表相加为0,直接不录入 { p->C=p1->C+p2->C; p->index=p1->index; p3->next=p; p3=p; } p1=p1->next; p2=p2->next; } else if(p1->indexindex) { p->C=p1->C; p->index=p1->index; p3->next=p; p3=p; p1=p1->next; } else { p->C=p2->C; p->index=p2->index; p3->next=p; p3=p; p2=p2->next; } } if(p1==NULL) { while(p2!=NULL) { p=(struct Node*)malloc(sizeof(struct Node)); p->next=NULL; p->C=p2->C; p->index=p2->index; p3->next=p; p3=p; p2=p2->next; } } else { while(p1!=NULL) { p=(struct Node*)malloc(sizeof(struct Node)); p->next=NULL; p->C=p1->C; p->index=p1->index; p3->next=p; p3=p; p1=p1->next; } } </code></pre> <p>}</p> <p>void Subtraction (struct Node<em>List1,struct Node</em>List2,struct Node*List3)//链表相减,只需在加的基础上改+为-</p> <p>{</p> <pre><code>struct Node*p1,*p2,*p3,*p; p1=List1->next; p2=List2->next; p3=List3;//有意思 List3->next=NULL;//重要 while(p1!=NULL&&p2!=NULL) { p=(struct Node*)malloc(sizeof(struct Node)); p->next=NULL; if(p1->index==p2->index) { if(p1->C-p2->C!=0) { p->C=p1->C-p2->C; p->index=p1->index; p3->next=p; p3=p; } p1=p1->next; p2=p2->next; } else if(p1->indexindex) { p->C=-p1->C; p->index=p1->index; p3->next=p; p3=p; p1=p1->next; } else { p->C=-p2->C; p->index=p2->index; p3->next=p; p3=p; p2=p2->next; } } if(p1==NULL) { while(p2!=NULL) { p=(struct Node*)malloc(sizeof(struct Node)); p->next=NULL; p->C=-p2->C; p->index=p2->index; p3->next=p; p3=p; p2=p2->next; } } else { while(p1!=NULL) { p=(struct Node*)malloc(sizeof(struct Node)); p->next=NULL; p->C=-p1->C; p->index=p1->index; p3->next=p; p3=p; p1=p1->next; } } </code></pre> <p>}</p> <p>void print(struct Node<em> List3,struct Node</em>p,struct Node*p3,int flag){</p> <p>cout<next;</p> <pre><code> p3=List3; while(p) { cout<C<index<prior=p3; p3=p; p=p->next; flag=1; } if(flag==0) cout<C<index<prior; } if(flag==0) cout<>n1; while(n1>n1; } cout<>e>>d>>f; p=(struct Node*)malloc(sizeof(struct Node)); if(e!=0) { p->C=e; p->index=f; Sort(List1,p); } } cout<>n2; while(n2>n2; } cout<>e>>d>>f; p=(struct Node*)malloc(sizeof(struct Node)); if(e!=0) { p->C=e; p->index=f; p2=(struct Node*)malloc(sizeof(struct Node)); p2->next=NULL; p1->next=p2; p1=p2; Sort(List2,p); } } cout<>sum1; while(sum1!=1&&sum1!=2&&sum1!=3) { cout<>sum1; } cout<>sum1; while(sum1!=1&&sum1!=2&&sum1!=3&&sum1!=0) { cout<>sum1; } if(sum1==0) { cout< </code></pre> <p>

Original: https://www.cnblogs.com/linlinmailbox/p/16492825.html
Author: 霖霖的信箱
Title: 数据结构 一元多项式加减法计算器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607363/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • DHCP超级作用域

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    089
  • 如何在EMACS 设置格式

    如何设置Emacs的各种模式, 这个教程要观摩一下的 http://www.emacswiki.org/emacs/IndentingC#toc1 Original: https:…

    Linux 2023年6月14日
    0109
  • 不割韭菜,纯分享:剖析HTML中的类,运维开发必备前端技能,我们一起坚持。

    写在开篇 开篇之前,先提个问题,什么是类?分类吗?可以这么说吧!我们可以给物体分类,也可以给人分类。正所谓,物以类聚,人以群分。难道我们这里是给元素分类?用分类来理解是不准确的啦!…

    Linux 2023年6月7日
    0107
  • pwm驱动

    1.1、参考博客 参考的教程如下: 1.2、什么是PWM 脉冲宽度调制(PWM),是英文”Pulse Width Modulation”的缩写,简称脉宽调制…

    Linux 2023年6月13日
    0112
  • Redis主从复制搭建及原理

    1 简介 1.1 Redis在单机、单节点、单实例下存在的问题 单机故障 内存容量有限 访问压力 Redis主从架构主要解决的问题:单机故障和访问压力,通过主从架构可以将访问流量分…

    Linux 2023年6月13日
    0102
  • MySQL — 数据查询语言

    DQL 全称 Data Query Language。数据查询语言,用来查询数据库中表的记录。 语法: select 查询列表(字段、常量、函数、表达式) from 表名; 字段别…

    Linux 2023年6月8日
    094
  • mysql group by语句流程是怎么样的

    group by流程是怎么样的 注意点: select id%10 as m, count(*) as c from t1 group by m; group by是用于对数据进行…

    Linux 2023年6月8日
    0102
  • [LINUX] 像电影里的黑客一样用 terminal 作为日常开发

    1、效果预览 2、具体实现 2.1 定位鼠标位置 2.2 获取屏幕位置 2.3 计算鼠标在哪个窗口 2.4 1920×1080 平铺效果设计 2.5 1280×…

    Linux 2023年6月8日
    0130
  • 一文让你明白Redis持久化

    网上虽然已经有很多类似的介绍了,但我还是自己总结归纳了一下,自认为内容和细节都是比较齐全的。 文章篇幅有 4k 多字,货有点干,断断续续写了好几天,希望对大家有帮助。不出意外地话,…

    Linux 2023年5月28日
    090
  • Ubuntu系统报错The system is running in low-graphics mode

    我遇到过两次这种请况,这次解决了。很nice! 在csdn上搜到的大部分操作是: 鼠标进入系统 使用快捷键 Ctrl+Alt+F1 进入用户 输入密码 然后按照以下代码进行 cd …

    Linux 2023年5月27日
    0108
  • rm命令弱爆了!

    大家好,我是良许。 创建、删除和修改文件是用户在 Linux 系统中执行的非常常见操作。大家都知道,在 Linux 系统里使用 rm 命令删除单个文件时,几乎一瞬间就完成了。但是如…

    Linux 2023年6月14日
    098
  • Springboot 实现Redis 同数据源动态切换db

    参考:https://developer.aliyun.com/article/952648 Original: https://www.cnblogs.com/herd/p/16…

    Linux 2023年5月28日
    0108
  • jmeter学习记录–04–Beanshell

    一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类…

    Linux 2023年5月28日
    0123
  • rsync

    rsync rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。 rsync…

    Linux 2023年6月7日
    0116
  • centos 8及以上安装mysql 8.0

    本文适用于centos 8及以上安装mysql 8.0,整体耗时20分钟内,不需要FQ 1.环境先搞好 systemctl stop firewalld //关闭防火墙 syste…

    Linux 2023年6月7日
    0111
  • vue过滤器和生命周期——day02

    vue之过滤器和生命周期——day02 过滤器: 概念:Vue.js 允许你自定义过滤器, 可被用作一些常见的文本格式化。过滤器可以用在两个地方: mustache 插值和 v-b…

    Linux 2023年6月7日
    0130
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球