一元多项式求和(c++源码)
LinkList.h
#ifndef LINKLIST_H_
#define LINKLIST_H_
#include<stdio.h>
template<class T>
struct Node
{
T data;
struct Node<T>* next;
};
template<class T>
class LinkList
{
private:
Node<T>* front;
public:
LinkList();
LinkList(T data[],int n);
~LinkList();
Node<T>* GetFirst(){return front;}
};
template<class T>
LinkList<T>::LinkList()
{
front=new Node<T>;
front->next=NULL;
}
template<class T>
LinkList<T>::LinkList(T data[],int n)
{
front=new Node<T>;
front->next=NULL;
for(int i=n-1;i>=0;i--)
{
Node<T>* s=new Node<T>;
s->data=data[i];
s->next=front->next;
front->next=s;
}
}
template<class T>
LinkList<T>::~LinkList()
{
Node<T>* p=front;
while(p)
{
front=p;
p=p->next;
delete front;
}
}
#endif // LINKLIST_H_
Element.h
#ifndef ELEMENT_H_
#define ELEMENT_H_
#include<iostream>
#include"LinkList.h"
#include<stdio.h>
struct element
{
double xs;
int zs;
element(double x=0,int z=0):xs(x),zs(z){}
};
class PloyList:public LinkList<element>
{
public:
PloyList(element data[],int n):LinkList(data,n){}
void Add(PloyList& B);
void Print();
};
void PloyList::Add(PloyList& B)
{
Node<element>* pa=GetFirst();
Node<element>* pb=B.GetFirst();
Node<element>* p=pa->next;
Node<element>* q=pb->next;
while(p&&q)
{
if(q->data.zs>p->data.zs)
{
pa=p;
p=p->next;
}
else if(q->data.zs<p->data.zs)
{
pa->next=q;
pa=q;
q=q->next;
pa->next=p;
}
else
{
p->data.xs+=q->data.xs;
if(p->data.xs==0)
{
pa->next=p->next;
delete p;
p=pa->next;
}
else
{
pa=p;
p=p->next;
}
Node<element>* temp=q;
q=q->next;
delete temp;
}
}
if(q)pa->next=q;
B.GetFirst()->next=NULL;
}
void PloyList::Print()
{
Node<element>* p=GetFirst()->next;
while(p)
{
std::cout<<"("<<p->data.xs<<", "<<p->data.zs<<") ";
p=p->next;
}
std::cout<<std::endl;
}
#endif // ELEMENT_H_
Use.cpp
#include<iostream>
#include"Element.h"
int main()
{
element ea[]={element(1,0),element(2.3,2),element(3,4)};
element eb[]={element(1,1),element(-2.3,2),element(3,4),element(5,10)};
PloyList a(ea,3),b(eb,4);
a.Add(b);
a.Print();
return 0;
}
一元多项式求和(c++源码)的更多相关文章
- Django路由层之路由分发 名称空间 虚拟环境 视图层之三板斧 JsonRsponse对象 request对象获取文件 FBV与CBV CBV源码剖析 模板层
目录 路由层之路由分发 路由层之名称空间 方式1:名称空间 方式2:别名不冲突即可 虚拟环境 pycharm创建虚拟环境 命令行形式创建虚拟环境 视图层之三板斧 HttpRsponse render ...
- jQuery1.11源码分析(1)-----Sizzle源码概览[原创]
最近在啃jQuery1.11源码,上来就遇到Sizzle这个jQuery的大核心,虽然已经清楚了Sizzle的用途,先绕过去也没事,但明知山有虎偏向虎山行才是我们要做的. 本文面向的阅读对象:正在学习 ...
- Tomcat源码解读系列(一)——server.xml文件的配置
Tomcat是J2EE开发人员最常用到的开发工具,在Java Web应用的调试开发和实际部署中,我们都可以看到Tomcat的影子.大多数时候,我们可以将Tomcat当做一个黑盒来看待,只需要将编写的J ...
- Word2Vec源码解析
Reference:http://blog.csdn.net/itplus/article/details/37969519 (Word2Vec解析(部分有错)) 源码:http://pan.bai ...
- jquery 源码解析
静态与实力方法共享设计 遍历方法 $(".a").each() //作为实例方法存在 $.each() //作为静态方法存在 Jquery源码 jQuery.prototype = ...
- springMVC源码分析之拦截器
一个东西用久了,自然就会从仅使用的层面上升到探究其原理的层面,在javaweb中springmvc更是如此,越是优秀的框架,其底层实现代码更是复杂,而在我看来,一个优秀程序猿就相当于一名武林高手,不断 ...
- SURF算法与源码分析、下
上一篇文章 SURF算法与源码分析.上 中主要分析的是SURF特征点定位的算法原理与相关OpenCV中的源码分析,这篇文章接着上篇文章对已经定位到的SURF特征点进行特征描述.这一步至关重要,这是SU ...
- JQuery源码分析(七)
了解jQuery对DOM进行遍历背后的工作机制,这样可以在编写代码时有意识地避免一些不必要的重复操作,从而提升代码的性能. 关于jQuery对象的包装 var $aaron = $("aar ...
- spring源码分析之spring-web web模块分析
0 概述 spring-web的web模块是更高一层的抽象,它封装了快速开发spring-web需要的基础组件.其结构如下: 1. 初始化Initializer部分 1.1 Servlet3.0 的 ...
- AFNetworking源码分析
来源:zongmumask 链接:http://www.jianshu.com/p/8eac5b1975de 简述 在iOS开发中,与直接使用苹果框架中提供的NSURLConnection或NSURL ...
随机推荐
- 快速上手 | Datavines 两表值比对规则用法
Datavines 是一站式开源数据可观测性平台,提供元数据管理.数据概览报告.数据质量管理,数据分布查询.数据趋势洞察等核心能力,致力于帮助用户全面地了解和掌管数据,让您做到心中有数. 场景 比较某 ...
- 【转载】Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)
原文信息: 作者:LoyenWang 出处:https://www.cnblogs.com/LoyenWang/ 公众号:LoyenWang 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作 ...
- EaselJS 源码分析系列--第三篇
这一篇分析另外四个稍显高级的显示类 -- Sprite.Movieclip.DOMElement.BitmapText SpriteSheet SpriteSheet 比较简单 它继承自 EventD ...
- Java面试题全集(二)
1. ⾸先CopyOnWriteArrayList内部也是⽤过数组来实现的,在向CopyOnWriteArrayList添加元素时,会复制⼀个新的数组,写操作在新数组上进⾏,读操作在原数组上进⾏ 2. ...
- 【JMeter】JMeter添加插件
JMeter添加插件 目录 JMeter添加插件 一.前言 二.插件管理器 三.推荐插件 1.Custom Thread Groups (1)Ultmate Thread Group (2)Stepp ...
- 智能制造之路—从0开始打造一套轻量级MOM平台之基础平台搭建(Linux部署)
一.前言 前面我们选定了Admin.net来搭建我们的MOM快速开发平台,本章主要描述.NET6平台的Linux部署,以及记录搭建过程中坑. 本次搭建我们选择某云的轻量应用服务器,系统选择CentOS ...
- Redis从入门到放弃(3):发布与订阅
1.介绍 Redis是一个快速.开源的内存数据库,支持多种数据结构,如字符串.哈希.列表.集合.有序集合等.除了基本的数据存储和检索功能外,Redis还提供了许多高级功能,其中之一就是发布订阅(Pub ...
- pandas 根据列的值选取所有行
原文链接:https://blog.csdn.net/changzoe/article/details/82348913 在其他论坛上看到的,原文链接如上所示.为方便记忆,原文如下所示: 选取等于某些 ...
- Unity的IPostprocessBuild:深入解析与实用案例
Unity IPostprocessBuild技术文章 Unity IPostprocessBuild是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目后自动执行一些操作.这个功能可以帮 ...
- 创建本地yum仓库
创建本地yum仓库 1,将镜像挂载到/mnt 如果失败打开虚拟机把设备状态的两个选项打勾 2,切换到客户端的指定目录 3,创建文件夹bak存放网络yum创库配置文件 4,将网络源移动到bak减少干扰 ...