多项式ADT的数组实现
/*删除表的正确方法*/
/*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的数组实现的更多相关文章
- 栈ADT的数组实现
/* 栈的数组实现声明 */ struct StackRecord; typedef struct StackRecord *Stack; #define MinSstackSize 5 #defin ...
- 随机队列 ADT接口 数组实现
Random queue ADT接口 RANDOM.h #include <stdlib.h> #include "Item.h" #include <time. ...
- 双端队列 ADT接口 数组实现
Deque ADT接口 DEQUEUE.h: #include <stdlib.h> #include "Item.h" void DEQUEUEinit(int); ...
- FIFO队列 ADT接口 数组实现
FIFO.h (接口) #include "Item.h" #include <stdlib.h> typedef struct STACKnode *link; st ...
- LIFO栈 ADT接口 数组实现
LIFO 栈结构 typedef int ElemenType; struct seqStack{ ElemeType data[MaxSize]; int top; }; typedef struc ...
- 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 ...
- MATLAB多项式及多项式拟合
多项式均表示为数组形式,数组元素为多项式降幂系数 1. polyval函数 求多项式在某一点或某几个点的值. p = [1,1,1];%x^2+x+1 x = [-1,0,1];y = po ...
- 《数据结构与算法分析:C语言描述_原书第二版》CH3表、栈和队列_reading notes
表.栈和队列是最简单和最基本的三种数据结构.基本上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,比如栈在程序中总是要间接地用到,不管你在程序中是否做了声明. 本章学习重点: 理解抽象数据类 ...
- 数据结构之表(C语言实现)
抽象数据类型 (abstract data type,ADT) 抽象数据类型是一些操作的集合.抽象数据类型是数学中的定义,在ADT中,我们不关心操作是如何被实现的.因此,这可以看做是模块化的扩充.例如 ...
随机推荐
- Python 函数 切片 迭代 列表生成器
函数 编写 定义一个函数要用def语句 def sum(i,n): ⚠有冒号 返回多值 实际上是返回一个tuple 定义默认参数 默认参数的作用是简化调用 def ...
- javascript总结--2014-04-17
HTML DOM Function Data http://www.oschina.net/translate/learning-javascript-design-patterns?cmp& ...
- 关于Thread的Runnable和Callable接口
其实非常简单:其实他们的区别就是Callable有返回值并且可以抛出异常. /** * Represents a command that can be executed. Often used to ...
- linux之cal命令
现在时间2014/11/25 21:36 让我们简单了解下日历命令的用法 1.显示当月的日历 2.显示一年的日历 3.显示2014年2月的月历
- 【LeetCode练习题】Merge Sorted Array
Merge Sorted Array Given two sorted integer arrays A and B, merge B into A as one sorted array. Note ...
- CentOS6无法本地登陆,ssh远程登陆没问题
CentOS6无法本地登陆,ssh远程登陆没问题---使用CentOS自带的rsyslog分析调试 Apr 21 14:15:27 raccontroller init: tty (/dev/tty1 ...
- Java面试题之九
四十六.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 对于这个题,只要弄清楚Math提供的三个与取整相关的方法就OK了. 1.ceil,英文含义是天花板,该 ...
- javascript第十七课:this使用
例如,我们要一个元素的值 function f1(){ alert(this.id); } document.getElementByid('#id').onclick=f1; //将函数赋值给事件
- OC基础11:基本的C语言特性2
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 19.定义一个int类型的指针: int ...
- Sumsets(3sum问题,枚举d,c二分a+b)
Sumsets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9997 Accepted: 2736 Descripti ...