需求

用表来定义一元多项式(具有非负次幂)的抽象数据类型。

1. 用数组实现

在书上,多项式ADT的数组实现的类型声明如下:

  1. typedef struct{
  2. CoeffArray[MaxDegree+1];
  3. int HighPower;//表示这个数组的最高次
  4. } * Polynomial;

这个声明仅仅定义了指针的名字,但是没有定义结构体类型的名字,在对 Polynomial 指针进行动态分配内存空间时: p1=(polynomial )malloc(sizeof(XXXX)); ,XXX无法换成结构体类型的名字,所以我们无法准确的分配一个结构体单元的空间。【因为仅仅通过指针无法求出指针指向的内存单元的大小】
可运行代码如下:数组实现多项式.cpp

缺点

由于多项式是稀疏的,大部分的时间计算两个多项式根本不存在的部分上。