一元多项式求和(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 ...
随机推荐
- Abaqus添加初始缺陷
主要介绍通过施加节点位移的方法 步骤一: 复制model,新建Step,static linear perturbation Tools->Analytical Field 定义场函数,例如:A ...
- Java 中怎样将 bytes 转换为 long 类型?
将bytes 转换为long类型: 第一种方式: String 接收 bytes 的构造器转成 String,再 Long.parseLong: 但此种情况需要注意:字节数组中的每个字节都必须是有效的 ...
- 侯捷C++STL源码分析
STL六大部件 容器(Containers):放东西,需要占用内存. 分配器(Allocators):支持容器. 算法(Algorithms):操作容器里面的数据. 迭代器(Iterators):容器 ...
- 介绍Centos7启用过程中用到的rpm软件包、及其作用
序号 包名 作用 1 udev 系统设备管理器,用于管理设备驱动程序和设备的元数据. 2 lvm2 Logical Volume Manager 2(LVM2)是一个用于管理和分配存储设备的工具,允许 ...
- 一个从文件中过滤指定字符串的python3脚本
from tabulate import tabulate plugin = [ ... ] plugin_v1 = [ ... ] filepath = "E:\\PycharmProje ...
- go项目实现在配置文件实现配置项统一管理
转载请注明出处: go项目中实现配置项统一管理,实现逻辑:将 配置项整理为一个json的数据结构,并保存到go.conf文件中,然后在go项目启动main方法中加载 go.conf 文件,读取go.c ...
- 领域驱动设计(DDD):从基础代码探讨高内聚低耦合的演进
大家好,我是付威,一名已在编码第一线奋斗了十余年的程序员.在2019年我初次接触到领域驱动设计(Domain-Driven Design,简称DDD)的概念.在我的探索中,我发现许多有关DDD的教程过 ...
- Jmeter逻辑控制器Switch Controller的用法
一.概述 类似编程语言中的switch函数,Switch Controller根据给定的值n(可使用变量)选择执行其下的 第n+1个子节点. 作用:Switch Controller通过给该控制器中的 ...
- Java单元测试及常用语句
1 前言 编写Java单元测试用例,即把一段复杂的代码拆解成一系列简单的单元测试用例,并且无需启动服务,在短时间内测试代码中的处理逻辑.写好Java单元测试用例,其实就是把"复杂问题简单化, ...
- shopee根据ID取商品详情 API
item_get-根据ID取商品详情 注册开通 shopee.item_get 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secr ...