线性表的基本运算及多项式的算术运算

线性表的基本运算:

template<class T>

voidSeqList<T>::Reverse(){

  T* t= new T[maxLength];

  int j=0;

  for (int i = 0; i < n; i++)  //利用中间数组逆置

  {

    t[i] = elements[i];

  }

  for (int a = n; a>=0; a--)

  {

    elements[j++] = t[a-1];

  }

}

template<class T>

bool SeqList<T>::DeleteX(constT &x){

int flag;

for(int i=0;i<n;i++){

     if(elements[i]==x){

        flag = 1;

        Delete(i);

     }

}

if(flag)

     return true;

return false;

}


多项式的算术运算:

Polynomal operator*(Polynomal& A,Polynomal&B){

       Term*pa,*pb,*pc;

       intAL,BL,i,k,maxExp;

       PolynomalC;            //存储结果多项式

       pc=C.getHead();         //结果多项式的尾指针

       AL=A.maxOrder();

       BL=B.maxOrder();

       if(AL!=-1||BL!=-1)        //相乘运算

       {

              maxExp=AL+BL;          //结果最高项

              float*result=new float[maxExp+1];

              for(i = 0; i < maxExp; i++)

              {

                     result[i]=0.0;

              }                   

              pa=A.getHead()->link;//多项式A遍历指针

              while(pa!=NULL){  

                     pb=B.getHead()->link;  //多项式B遍历指针

                     while(pb!=NULL){

                            k=pa->exp+pb->exp;

                            result[k]=result[k]+pa->coef*pb->coef;

                            pb=pb->link;

                     }

                     pa=pa->link;

              }

              for(i = 0; i <= maxExp; i++)

                     if(fabs(result[i])>0.001)

                            pc=pc->InsertAfter(result[i],i);

                     delete[]result;

       }

       pc->link=NULL;

       return C;

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值