polynomial.cpp

来自「主要些了几个最基本的并且是最经典的数据结构算法」· C++ 代码 · 共 93 行

CPP
93
字号
#include"Polynomial.h"
#include<iostream.h>

Polynomial::Polynomial(int n)
{
	MaxTerms=n;
    start=0;
	finish=0;
	free=0;
	termArray[0].exp=0;
	termArray[0].coaf =0;
}

int Polynomial::operator!()
 {
	if(start==finish&&termArray[start].coaf==0)
		return 0;
	else 
		return 1;
 }

float Polynomial::Coaf (int e)
 {
	for(int i=0;i<finish;i++)
	{
		if(termArray[i].exp==e)
			return termArray[i].coaf;
	}
	cout<<"Exp e haven't coaf."<<endl;
	return -1;
 }

int Polynomial::LeadExp()
{
	return termArray[finish-1].exp;
}

void Polynomial::NewTerm(float c,int e)
{
	if(finish<MaxTerms)
	{
		for(int i=start ;i<=finish ;i++)
		{
			if(termArray[i].exp>e)
			{
				finish++;
				for(int j=finish;j>i;j--)
				{
					termArray[j].exp=termArray[j-1].exp;
					termArray[j].coaf=termArray[j-1].coaf;
				}
				free++;
				termArray[j].exp=e;
				termArray[j].coaf=c;
				return ;
			}
			if(termArray[i].exp==e||termArray[i].exp==0&&termArray[i].coaf==0)
			{
				termArray[i].coaf+=c;
				termArray[i].exp=e;
				return ;
			}
		}
        finish++;
		termArray[finish].exp=e;
		termArray[finish].coaf=c;
	}
	else
		cout<<"Out of Range"<<endl;
}

Polynomial Polynomial::Add(Polynomial poly)
{
	for(int i=poly.start;i<=poly.finish;i++)
		NewTerm(poly.termArray[i].coaf,poly.termArray[i].exp);
	return *this;
}

		
float Polynomial::Eval(float x)
{
	float n,m;
	m=0;
	for(int i=start;i<=finish;i++)
	{
		n=termArray[i].coaf;
		for(int j=termArray[i].exp;j>0;j--)
			n*=x;
		m+=n;
	}
	return m;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?