⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 多项式计算.cpp

📁 数据结构:顺序表
💻 CPP
字号:
//包含多项式计算函数和主函数的文件“多项式计算.cpp”
#include<iostream.h>
#include"顺序表.cpp"


//计算多项式p的值
template<class ElemType>
double PolySum1(LinearList<ElemType>& p, double x)
{
	//用sum计算累加和,首先把常数项a0的值赋给它作为其初值
	double sum=p.GetElemList(0);
	//用w计算x的次幂,初值勤为1
	double w=1;
	//累加计算多项式的值
	for(int i=0; i<p.ListSize(); i++){
		w*=x;        //计算出x的i次幂
		sum+=p.GetElemList(i)*w;        //把一个新的累加项aixi的值累加到sum中
	}
	return sum;   //返回求出的多项式的值
}


//实现多项式p1和p2的加法,结果存入p3中
template<class ElemType>
void PolyAdd1(LinearList<ElemType>& p1,
			  LinearList<ElemType>& p2, LinearList<ElemType>& p3)
{
	//分别定义c1和c2用来保存p1和p2多项式的长度
	int c1=p1.ListSize(), c2=p2.ListSize();  
	//当两个多项式中的数据项均没有处理完的处理过程
	int i=0, j=0;
	while(i<c1 && j<c2){
		//将p1和p2中的两个当前同幂数据项合并后插入到p3的尾部
		ElemType a=p1.GetElemList(i)+p2.GetElemList(j);
		p3.InsertList(a,2);
		i++;
		j++;
	}
	//将p1多项式中余下的数据项插入到p3的尾部
	while(i<c1){
		p3.InsertList(p1.GetElemList(i), 2);
		i++;
	}
	//将p2多项式中余下的数据项插入到p3的尾部
	while(j<c2){
		p3.InsertList(p2.GetElemList(j), 2);
		j++;
	}
}


void main()
{
	LinearList<double> a(5), b(5), c(5);
	double r1[6]={5,0,3,-6,0,2};
	double r2[7]={2,0,-1,6,-3,0,1};
	int i;
	for(i=0; i<6; i++) a.InsertList(r1[i],2);
	for(i=0; i<7; i++) b.InsertList(r2[i],2);
	cout<<"线性表a:";
	a.TraverList();
	cout<<"当x=2时的值:"<<PolySum1<double>(a,2)<<endl;
	cout<<"线性表b:";
	cout<<"当x=2时的值:"<<PolySum1<double>(b,2)<<endl;
	PolyAdd1<double>(a,b,c);
	cout<<"线性表c:";
	c.TraverList();
	cout<<"当x=2时的值:"<<PolySum1<double>(c,2)<<endl;
	LinearList<double>d(b);
	double x; d.DeleteList(x,1); d.DeleteList(x,2);
	d.TraverList();
	cout<<"多项式a,b,c的长度分别为:"<<a.ListSize();
	cout<<' '<<b.ListSize()<<' '<<c.ListSize()<<' ';
	cout<<d.ListSize()<<endl;
}






⌨️ 快捷键说明

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