005.有序链表一元多项式C实例
来源:互联网 发布:鸿鹄焉知燕雀之志图片 编辑:程序博客网 时间:2024/06/05 05:58
#include <stdio.h>#include <stdlib.h>typedef struct term{ float coef; int expn; struct term* next;}term,*LinkList;typedef LinkList polynomial;int cmp(LinkList pa,LinkList pb){ if(pa->expn > pb->expn) return 1; else if(pa->expn == pb->expn) return 0; else return -1;}int LocateElem(LinkList L,LinkList t,LinkList *q){ LinkList p1=L->next; LinkList p2=L; while(p1) { if(t->expn > p1->expn) { p1=p1->next; p2=p2->next; } else if(t->expn == p1->expn) { *q=p1; return 1; } else { *q=p2; return 0; } } if(!p1) { *q=p2; return 0; }}int printPolyn(polynomial P){ LinkList q; q=P->next; while(q) { printf("%.2f*x^%d",q->coef,q->expn); q=q->next; if(q) printf("+"); else printf("\n"); }}int CreatePolyn(polynomial P,int m){ int i; LinkList t; LinkList q; P->next=NULL; printf("input coefficient,exponent:\n"); for(i=0;i<m;i++) { t=(LinkList)malloc(sizeof(term)); t->next=NULL; scanf("%f,%d",&t->coef,&t->expn); if(!LocateElem(P,t,&q)) { t->next=q->next; q->next=t; } else { i--; } }}int AddPolyn(polynomial Pa,polynomial Pb){ LinkList qa=Pa->next; LinkList qb=Pb->next; LinkList qc=Pa; LinkList s,s1,s2; float sum; while(qa && qb) { switch(cmp(qa,qb)) { case -1: qc->next=qa; qc=qa; qa=qa->next; break; case 0: sum=qa->coef+qb->coef; if(sum != 0.0) { s=qb; qa->coef=sum; qc->next=qa; qc=qa; qa=qa->next; qb=qb->next; free(s); } else { s1=qa; s2=qb; qc->next=qa->next; qa=qa->next; qb=qb->next; free(s1); free(s2); } break; case 1: qc->next=qb; qc=qb; qb=qb->next; break; } } qc->next=qa?qa:qb; free(Pb);}int main(){ polynomial Pa; polynomial Pb; Pa=(LinkList)malloc(sizeof(term)); Pb=(LinkList)malloc(sizeof(term)); CreatePolyn(Pa,2); printPolyn(Pa); CreatePolyn(Pb,3); printPolyn(Pb); printf("Pb+Pb="); AddPolyn(Pa,Pb); printPolyn(Pa); return 0;}
0 0
- 005.有序链表一元多项式C实例
- 关于c 一元多项式链表的建立和打印
- 一元多项式--链表实现
- 一元多项式链表实现
- 链表实现一元多项式加法
- 链表应用-- 一元多项式相加
- 一元多项式相加-链表应用
- 学习笔记------数据结构(C语言版)链表应用~一元多项式求和
- 一元多项式的加法器 C语言版 链表版 顺序表版
- 线性表(一元多项式)
- 线性表---一元多项式相加
- [线性表]一元多项式相乘
- c实现一元多项式加乘
- 一元多项式相加程序(C语言)
- C语言一元多项式相加问题
- 一元多项式相加(C语言实现)
- PAT 1010. 一元多项式求导 C语言
- 一元多项式相加与相乘(C++)
- ionic安装
- 微信小程序填坑:上传头像;wx.chooseImage,wx.uploadFile
- 2.4.PHP7.1 女神级教程-女神的私人信息 -【PHP常量】
- 生活中的Paxos,原来你我都在使用——对Paxos生活化的解读
- 进程与线程之间区别
- 005.有序链表一元多项式C实例
- Linux中常用的基本操作命令
- google_hack【零碎资料整理】
- C++第二次上机作业 百钱百鸡
- 北航计算机机试12统计关键字位置
- jenkins总结
- 字符,字符串输入示例程序;屏幕清除函数实例
- Linux环境下权限简析
- 【技能库】@Cacheable @CachePut Spring 缓存示例(142)