一元稀疏多项式简单的计算器

发布时间:2021-02-19 18:17:19

一元稀疏多项式简单的计算器

网友回答

一元稀疏多项式计算器设计程序代码
#include
#include
#include
#include
#define maxlen 10
#define large 999
typedef struct Linklistomial{
float coef;
int expn;
struct Linklistomial *next;
}Linklistomial,*Linklist;
void Insert(Linklist p,Linklist h){
if(p->coef==0) free(p);//系数为0的话释放结点
else{ Linklist q1,q2;
q1=h; q2=h->next; while(q2&&p->expnexpn) { //查找插入位置
q1=q2;
q2=q2->next; } if(q2&&p->expn==q2->expn) { //将指数相同相合并
q2->coef+=p->coef; free(p);
if(!q2->coef) {//系数为0的话释放结点
q1->next=q2->next; free(q2);
} } else { //指数为新时将结点插入
p->next=q2;
q1->next=p; }
}}Linklist CreateLinklist(Linklist head,int m){
//建立一个头指针为head、项数为m的一元多项式
int i; Linklist p;
p=head=(Linklist)malloc(sizeof(struct Linklistomial));
head->next=NULL;
for(i=0;icoef,&p->expn);
Insert(p,head); //调用Insert函数插入结点
} return head;
}void DestroyLinklist(Linklist p){ //销毁多项式p
Linklist q1,q2;
q1=p->next; q2=q1->next; while(q1->next) {
free(q1);
q1=q2;
q2=
以上问题属网友观点,不代表本站立场,仅供参考!