/*删除表的正确方法*/
/*assume header*/
void
DeleteList(List L)
{
Position p,Tmp;
p=L->Next;
while(p != NULL)
{
Tmp=p->Next;
free(p);
p = Tmp;
}
}//先free掉,然后再判断这个结点的Next是不是NULL,是就不做了
/*多项式ADT*/
/*多项式数组实现的类型声明*/
/*一个结构就可以表示。一个多项式*/
typedef struct{
CoeffArray[MaxDegree+];
int HighPower;//表示这个数组的最高次
} * Polynomial;
/*将多项式初始化为0*/
void
ZeroPolynomial(Polynomial Poly)
{
for(i=;i <= MaxDegree ;i++)
{
Poly->CoeffArray[i]=;
}
Poly->HighPower = ;
}
/*两个多项式相加的过程*/
void
AddPolynomial(Polynomial Poly1,Polynomial Poly2,Polynomial PolySum)
{
ZeroPolynomial(PolySum);
MaxPower=Max2(Poly1->HighPower,Poly2->HighPower);
for(i=;i<=MaxPower;i++)
{
PolySum->CoeffArray[i] = Poly1->CoeffArray[i] + Poly2->CoeffAyyay[i];
}
PolySum->HighPower=MaxPower;
}
/*两个多项式相乘的过程*/
void
MultPolynomial(Polynomial Poly1,Polynomial Poly2,Polynomial PolyProd)
{
ZeroPolynomial(PolyProd);
PolyProd->HighPower = Poly1->HighPower * Poly2->HighPower;
for(int i=; i <= Poly1->HighPower; i++)
{
for(int j=; j <= Poly2->HighPower; j++)
{
PolyProd->CoeffArray[i+j] += Poly1->CoeffArray[i] * Poly2->CoeffArray[j];
}
}
}

多项式ADT的数组实现的更多相关文章

  1. 栈ADT的数组实现

    /* 栈的数组实现声明 */ struct StackRecord; typedef struct StackRecord *Stack; #define MinSstackSize 5 #defin ...

  2. 随机队列 ADT接口 数组实现

    Random queue ADT接口 RANDOM.h #include <stdlib.h> #include "Item.h" #include <time. ...

  3. 双端队列 ADT接口 数组实现

    Deque ADT接口 DEQUEUE.h: #include <stdlib.h> #include "Item.h" void DEQUEUEinit(int); ...

  4. FIFO队列 ADT接口 数组实现

    FIFO.h (接口) #include "Item.h" #include <stdlib.h> typedef struct STACKnode *link; st ...

  5. LIFO栈 ADT接口 数组实现

    LIFO 栈结构 typedef int ElemenType; struct seqStack{ ElemeType data[MaxSize]; int top; }; typedef struc ...

  6. Horner规则求多项式

    /* Horner */ /*多项式:A(x)=a[n]X^n+a[n-1]x^n-1+...+a[1]X^1+a[0]X^0*/ #include <stdio.h> long int ...

  7. MATLAB多项式及多项式拟合

    多项式均表示为数组形式,数组元素为多项式降幂系数 1.      polyval函数 求多项式在某一点或某几个点的值. p = [1,1,1];%x^2+x+1 x = [-1,0,1];y = po ...

  8. 《数据结构与算法分析:C语言描述_原书第二版》CH3表、栈和队列_reading notes

    表.栈和队列是最简单和最基本的三种数据结构.基本上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,比如栈在程序中总是要间接地用到,不管你在程序中是否做了声明. 本章学习重点: 理解抽象数据类 ...

  9. 数据结构之表(C语言实现)

    抽象数据类型 (abstract data type,ADT) 抽象数据类型是一些操作的集合.抽象数据类型是数学中的定义,在ADT中,我们不关心操作是如何被实现的.因此,这可以看做是模块化的扩充.例如 ...

随机推荐

  1. 32位程序调用Oracle11gR2数据库libclntsh.so失败

    [问题描述]32位程序调用Oracle11gR2数据库的libclntsh.so库时会返回失败. [问题原因]32位程序只能调用32位的Oracle客户端实例包,而R2数据库默认安装完毕后是没有lib ...

  2. mini2440 uboot使用nfs方式引导内核,文件系统

    mini2440 uboot使用nfs方式引导内核,文件系统 成于坚持,败于止步 看了一段时间的u-boot了,到今天才真正完全实现u-boot引导内核和文件系统,顺利开机,在此记录完整过程 1.首先 ...

  3. 【LeetCode练习题】Validate Binary Search Tree

    Validate Binary Search Tree Given a binary tree, determine if it is a valid binary search tree (BST) ...

  4. 浅析StackTrace【转】

    我们在学习函数调用时,都知道每个函数都拥有自己的栈空间.一个函数被调用时,就创建一个新的栈空间.那么通过函数的嵌套调用最后就形成了一个函数调用堆栈.在c#中,使用StackTrace记录这个堆栈.你可 ...

  5. C#泛型类之List<T>

    1.        定义 System.Collections.Generic.List<T>类表示可通过索引访问的对象的强类型列表.提供用于对列表进行搜索.排序和操作的方法.T为类型参数 ...

  6. 十分钟让你明白Objective-C的语法(和Java、C++的对比)

    很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头 疼,Objective-C的代码在语法上和Java, C++有着很大的区别, ...

  7. CSS3 过渡

    通过 CSS3,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 请把鼠标移动到右侧的元素上: 浏览器支持 Internet E ...

  8. C#4 for循环 迭代法 穷举法应用

    for()循环. 四要素: 初始条件,循环条件,状态改变,循环体. 执行过程: 初始条件--循环条件--循环体--状态改变--循环条件.... 注意:for的小括号里面分号隔开,for的小括号后不要加 ...

  9. java 类访问权限

    Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修饰符,一般 ...

  10. Unix下C程序内存泄露检测工具:valgrind的安装使用

    Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...