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

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)

大家都在看

  • shell相关知识2

    <li class="tool-item tool-active is-like tool-clicked"><a href="ja…

    Linux 2023年5月28日
    080
  • Linux at命令详解

    大家好,我是良许。 在生活中,我们有太多的场景需要使用闹钟,比如早上7点起床,下午4点开会,晚上8点购物,等等。 [En] In life, we have too many sc…

    Linux 2023年5月27日
    0111
  • Docker ->(个人学习记录笔记)

    @ Docker基本使用 核心概念 docker常用命令 镜像操作 修改镜像源 容器操作 普通用户运行docker Docker基本使用 Docker是一个开源的应用容器引擎;是一…

    Linux 2023年5月27日
    0127
  • djnago-filter用法

    django-filter用法 集成drf 不指定字段的过滤参数,那么该字段就默认为exact,精准匹配自定义filter文件内 from django_filters impor…

    Linux 2023年6月14日
    0128
  • Shell 脚本是什么?

    一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这…

    Linux 2023年5月28日
    0102
  • Linux 目录挂载服务

    Linux 服务器挂载文件目录通常有三种形式,手动挂载、自动挂载、Autofs 自动挂载,下面对这三个挂载做一下介绍,接受一下这三个区别以及使用场景: 准备服务器和客户端: ser…

    Linux 2023年6月6日
    097
  • 人人都写过的5个Bug!

    大家好,我是良许。 计算机专业的小伙伴,在学校期间一定学过 C 语言。它是众多高级语言的鼻祖,深入学习这门语言会对计算机原理、操作系统、内存管理等等底层相关的知识会有更深入的了解,…

    Linux 2023年5月27日
    0135
  • shell 同时执行多任务下载视频

    本文为博主原创,转载请注明出处: shell 脚本不支持多线程,但我们需要用shell 脚本同时跑多个任务时怎么让这些任务并发同时进行,可以采用在每个任务 后面 添加一个 &amp…

    Linux 2023年6月14日
    0113
  • mysql join语句的执行流程是怎么样的

    mysql join语句的执行流程是怎么样的 join语句是使用十分频繁的sql语句,同样结果的join语句,写法不同会有非常大的性能差距。 select * from t1 st…

    Linux 2023年6月8日
    0101
  • [转帖]shell学习之shell基础知识了解

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

    Linux 2023年5月28日
    0106
  • docker 启动mysql

    创建配置文件 mysqld.cnf Original: https://www.cnblogs.com/outsrkem/p/15704614.htmlAuthor: Outsrk…

    Linux 2023年6月6日
    074
  • 使用 ssmtp 於 shell 透過 Gmail 寄信

    有很多程式於 bash shell 執行, 執行完要自動寄信出去, 但是最近都被 Google 退信, 最好的方法是透過 Gmail 直接寄信. 本來是要另外寫隻 script 來…

    Linux 2023年5月28日
    091
  • map_set使用说明

    map_set使用说明 map的底层结构大致是一个哈希表,set的底层结构大致是一个红黑树 不代表全部! set #include"map_set.h" //s…

    Linux 2023年6月13日
    097
  • 访问github 与 mac修改hosts并刷新DNS

    加速githubhttps://ipaddress.com/website/github.global.ssl.fastly.nethttps://ipaddress.com/we…

    Linux 2023年6月8日
    0117
  • 操作系统实现-进入内核

    博客网址:www.shicoder.top微信:18223081347欢迎加群聊天 :452380935 这一次我们正式进入内核,编写相关的内核代码,也就是kernel代码 数据类…

    Linux 2023年6月13日
    0104
  • kali linux安装后乱码的解决方法

    操作系统是5.3 解决方法是在终端执行命令: Original: https://www.cnblogs.com/wangpingcong/p/12641912.htmlAutho…

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