一元多项式求和(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 ...
随机推荐
- 你知道.NET的字符串在内存中是如何存储的吗?
毫无疑问,字符串是我们使用频率最高的类型.但是如果我问大家一个问题:"一个字符串对象在内存中如何表示的?",我相信绝大部分人回答不上来.我们今天就来讨论这个问题. 一.字符串对象的 ...
- 使用mybatis-generator 能生成 但是实际使用时抛出异常Invalid bound statement (not found)
好多好多好多红 但是重点是一句org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): {}.d ...
- 解决Oracle jdbc驱动包maven下载失败问题
由于Oracle版权限制,其jdbc驱动包不让人随便下载,这就给maven的下载和编译带来了麻烦. 解决办法是先获取jar包(方法一:去oracle官网下载,方法二:去oracle安装目录如produ ...
- Sharding-Sphere使用HikariCP连接池连接Ojdbc6报Driver does not support get/set network timeout for connections. (oracle.jdbc.driver.T4CConnection.getNetworkTimeout()I)
HikariCP连接Ojdbc6报错Driver does not support get/set network timeout for connections. (oracle.jdbc.driv ...
- WPF 全局样式资源管理
在WPF通常我们习惯于把样式直接写在控件属性上,例如: <TextBox x:Name="pluginPathTxt" Margin="0,0,0,0" ...
- Django错误:ERRORS: ?: (staticfiles.E001) The STATICFILES_DIRS setting is not a tuple or list. HINT: Perhaps you forgot a trailing comma?
报错的原因是因为我们的STATICFILES_DIRS赋值时,形式不对,其应该赋数组对象,具体如下: 找到settings.py文件, 把 STATICFILES_DIRS=(os.path.join ...
- 链表/栈/队列/KMP
链表 用数组模拟,不同于结构体加指针 调用new关键字开上万级别的节点非常慢,基本会超时 单链表 来构造邻接表 用于存图与树 基本结构: head 表示头结点的下标 e[i] 表示节点i的值 ne[i ...
- ABC295 D题 题解
题意简述 给定一个长度不超过\(\;5\times 10^5\;\)的,仅有数字构成的字符串,问存在多少段子串,使得子串内字符重新排序后,前半段与后半段相同? 做法分析 重组后前后两部分相同,其实也就 ...
- Unity的IUnityLinkerProcessor:深入解析与实用案例
Unity IUnityLinkerProcessor Unity IUnityLinkerProcessor是Unity引擎中的一个接口,它允许开发者在Unity项目构建时对代码进行链接处理.这个接 ...
- python实现在函数中捕获某个异常,然后将异常的具体信息写入error.txt文件中;
在程序开发中,如果对某些代码的执行不能确定(程序语法完全正确) 可以增加try来捕获异常 try这个关键字来捕获异常try:尝试执行的代码except:出现错误的处理 def func(): try: ...