多项式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中,我们不关心操作是如何被实现的.因此,这可以看做是模块化的扩充.例如 ... 
随机推荐
- 32位程序调用Oracle11gR2数据库libclntsh.so失败
			[问题描述]32位程序调用Oracle11gR2数据库的libclntsh.so库时会返回失败. [问题原因]32位程序只能调用32位的Oracle客户端实例包,而R2数据库默认安装完毕后是没有lib ... 
- mini2440 uboot使用nfs方式引导内核,文件系统
			mini2440 uboot使用nfs方式引导内核,文件系统 成于坚持,败于止步 看了一段时间的u-boot了,到今天才真正完全实现u-boot引导内核和文件系统,顺利开机,在此记录完整过程 1.首先 ... 
- 【LeetCode练习题】Validate Binary Search Tree
			Validate Binary Search Tree Given a binary tree, determine if it is a valid binary search tree (BST) ... 
- 浅析StackTrace【转】
			我们在学习函数调用时,都知道每个函数都拥有自己的栈空间.一个函数被调用时,就创建一个新的栈空间.那么通过函数的嵌套调用最后就形成了一个函数调用堆栈.在c#中,使用StackTrace记录这个堆栈.你可 ... 
- C#泛型类之List<T>
			1. 定义 System.Collections.Generic.List<T>类表示可通过索引访问的对象的强类型列表.提供用于对列表进行搜索.排序和操作的方法.T为类型参数 ... 
- 十分钟让你明白Objective-C的语法(和Java、C++的对比)
			很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头 疼,Objective-C的代码在语法上和Java, C++有着很大的区别, ... 
- CSS3 过渡
			通过 CSS3,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 请把鼠标移动到右侧的元素上: 浏览器支持 Internet E ... 
- C#4 for循环  迭代法  穷举法应用
			for()循环. 四要素: 初始条件,循环条件,状态改变,循环体. 执行过程: 初始条件--循环条件--循环体--状态改变--循环条件.... 注意:for的小括号里面分号隔开,for的小括号后不要加 ... 
- java 类访问权限
			Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修饰符,一般 ... 
- Unix下C程序内存泄露检测工具:valgrind的安装使用
			Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ... 
