利用顺序表实现多项式相加

//利用顺序表实现多项式相加
#include 
#include 
#include 
#include
#include
using namespace std;
const int N=10;
struct Data
{   int xishu;
    int zhishu;
};
template 
class SeqList {
private:
   T* list;
   int MaxSize;
   int size;
public:
   SeqList(int max); //构造函数,初始化得到一个容量为max的空表 
   ~SeqList();     //析构函数,释放线性表占用的存储空间 
   int Size();  //求线性表的长度 
    int Maxsize();  //求线性表的最大元素个数
   int Find(const T& x); //在线性表中查找与元素x同指数的元素位置 
   T GetData(int i);  //取线性表的第i个元素 
   void Insert(int i,const T & x  ); //把x插入线性表中第i位
   /*线性表加入一项x;
   若有序表中不存在与x同指数的元素,则按x的指数大小插入;
   否则,在表中已存在与x同指数的元素,则该元素的系数加上x的系数,若系数和为0,则要删除该元素;
   */
   void Add(const T& x); 
   void Delete(int i);  // 删除第i个元素
   void Print();   
   void operator =(const SeqList& other); //多项式线性表复制
   SeqList operator +(const SeqList& other); //多项式线性表相加
};

template 
int SeqList::Find(const T& x)
{
	for(int i=0;i
SeqList::SeqList(int max) {
   list = new T[max];
   MaxSize = max;
   size = 0;
}
template 
SeqList::~SeqList() {
   delete []list;
}

template 
int SeqList::Size() {
   return size;
}
template 
int SeqList::Maxsize() {
   return MaxSize;
}
template 
T SeqList::GetData(int i) {
   return list[i];
}
template 
void SeqList::Delete(int i) {
  if((i<0)||(i>size-1)) {
     cout<<"元素不存在!!"<
void SeqList::Insert(int i,const T& x) {
   if(size == MaxSize) {
      cout<<"顺序表已满,插入错误!"<size)) {
       cout<<"插入位置错误!"<=i;j--) list[ j+1] = list[ j];
      list[i] = x;
   size++; 
}

template 
void SeqList::Print() 
{
   for(int i=0;i<=size-1;i++) 
   {  if(list[i].xishu>0) cout<<"+";
	   cout<  
void SeqList::Add(const T& x)
{/*线性表加入一项x;
   若有序表中不存在与x同指数的元素,则按x的指数大小插入;
   否则,在表中已存在与x同指数的元素,则该元素的系数加上x的系数,若系数和为0,则要删除该元素;
   */
   //请在此处完成函数
	/*int t;
	if(!size)list[size++]=x;else{*/
	/*   t=Find(x);
	 if(!t){*/
		list[size++]=x;
		for(int i=size-1;i>0;--i)
			if(list[i].zhishu  
void  SeqList::operator =(const SeqList& other)
{  
    //请在此处完成函数
	MaxSize = other.MaxSize;
	size = other.size;
	for(int i=0;i  
SeqList  SeqList::operator +(const SeqList& other)
{  /*SeqList* temp=new SeqList(N);*/
   //请在此处完成函数
    MaxSize+=other.MaxSize;
	int t;
	for(int i=0;i0;--j)//就是变量还是用了i,所以一直出错
			if(list[j].zhishu L1(N),L2(N),L3(N);
	srand((unsigned)time(NULL));
	while(L1.Size()

你可能感兴趣的:(数据结构)