首页 > 其他 > 详细

多项式ADT笔记(数据结构c版)

时间:2017-12-18 10:31:28      阅读:328      评论:0      收藏:0      [点我收藏+]

项式ADT笔记
设多项式为P=A1Xn1+A2Xn2+···AiXni

//多项式ADT的数组实现
typedef struct 
{
    int CoeffArray[MaxDegree + 1];//各个多项式的系数A
    int HighPower;  //最高的幂ni
} * Polynomial;

//将多项式初始化为零的过程
void ZeroPolynomial(Polynomial Poly)
{
    int i;
    for( i = 0; i <= MaxDegree; i ++)
        Poly -> CoeffArray[i] = 0;
    Poly -> HighPower = 0;
}
//多项式相加
void AddPolynomial(const Polynomial Poly1, const Polynomial Poly2, Polynomial PolySum) 
{
    int i;
    ZeroPolynomial(PolySum);
    PolySum -> HighPower = Max(Poly1 -> HighPower, Poly2 -> HighPower);
    for( i = PolySum -> HighPower; i >= 0; i--)
        PolySum -> CoeffArray[i] = Poly1 -> CoeffArray[i] + Poly2 -> CoeffArray[i];
}
//多项式相乘
void MultPolynomial(const Polynomial Poly1, const Polynomial Poly2, Polynomial PolyProd)
{
    int i,j;
    ZeroPolynomial(PolyProd);
    PolyProd -> HighPower = Poly1 -> HighPower + Poly2 -> HighPower;

    if (PolyProd -> HighPower > MaxDegree)
        Error("Exceeded array size");
    else 
        for(i = 0; i <= Poly1 -> HighPower; i++) 
            for(j = 0; j <= Poly2 -> HighPower; j++)
                PolyProd -> CoeffArray[i + j] += Poly1 -> CoeffArray[i] * Poly2 -> CoeffArray[j];
}

 使用链表实现

typedef struct Node* PtrToNode;//Node对象

struct Node
{
    int Coefficient;//系数A
    int Exponent;//
    PtrToNode Next;//下一个Node的指针
};

typedef PtrToNode Polynomail;//下一个Node对象

 

 

多项式ADT笔记(数据结构c版)

原文:http://www.cnblogs.com/Babylon/p/8056224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!