数据结构之---C语言实现连式多项式
来源:互联网 发布:手机能淘宝开店吗 编辑:程序博客网 时间:2024/06/05 08:18
//链式存储实现多项式#include <stdio.h>#include <stdlib.h>typedef struct term *link;struct term {int c;//系数int e;//指数link next;};typedef struct{link head;//头指针link tail;//尾指针}*poly_t;link TERM(int c, int e){link t = malloc(sizeof *t);t->c = c;t->e = e;t->next = NULL;return t;}poly_t poly_init(){poly_t p = malloc(sizeof *p);p->head = p->tail = TERM(0, 0);return p;}void term_read(poly_t p){int i, n;int c, e; scanf("%d\n", &n);for(i = 0; i < n; i++){scanf("%d_%d\n", &c, &e);p->tail = p->tail->next = TERM(c, e);}}poly_t poly_destory(poly_t p){link t, x;for(t = p->head; t; free(t), t = x)x = t->next;free(p);return NULL;}void poly_show(poly_t p){link t;if(p->head == p->tail)return;for(t = p->head->next; t != p->tail; t = t->next){printf("%dX^%d_%c_", (t->c > 0) ? (t->c) : (-t->c), t->e, (t->next->c > 0) ? '+' : '-');}printf("%dX^%d\n", (t->c>0) ? (t->c):(-t->c), t->e);}poly_t poly_add(poly_t p1, poly_t p2){poly_t p = poly_init();link t1 = p1->head->next;link t2 = p2->head->next;while(t1 && t2){if(t1->e < t2->e){p->tail = p->tail->next = TERM(t1->c, t2->e);t1 = t1->next;}else if(t1->e > t2->e){p->tail = p->tail->next = TERM(t2->c, t2->e);t2 = t2->next;}else{int sum = t1->c + t2->c;if(sum != 0){p->tail = p->tail->next = TERM(sum, t1->e);}t1 = t1->next;t2 = t2->next;}}for(; t1; t1 = t1->next){p->tail = p->tail->next = TERM(t1->c, t1->e);}for(; t2; t2 = t2->next){p->tail = p->tail->next = TERM(t2->c, t2->e);}return p;}int main(){poly_t p1, p2, p3;p1 = poly_init();term_read(p1);poly_show(p1);p2 = poly_init();term_read(p2);poly_show(p2);p3 = poly_add(p1, p2);poly_show(p3);poly_destory(p1);poly_destory(p2);poly_destory(p3);return 0;}
0 0
- 数据结构之---C语言实现连式多项式
- 数据结构之多项式(C++)
- 数据结构与算法(C语言)之线性表(连式存储结构)
- 数据结构和算法C语言实现:使用链表实现稀疏多项式
- 数据结构C语言描述——用单链表实现多项式的相加
- 数据结构之队列的实现(c语言)
- 数据结构之单链表C语言实现
- 数据结构C语言之单链表简单实现
- 数据结构C语言实现之顺序表
- 数据结构C语言实现之单链表
- 数据结构C语言实现之顺序栈
- 数据结构C语言实现之链栈
- 数据结构C语言实现之循环队列
- 数据结构C语言实现之链队列
- 数据结构C语言实现之串
- 数据结构c语言实现之单链表
- 数据结构c语言实现之静态单链表
- 数据结构c语言实现之字符串
- aop入门前内容:静态代理
- Count and Say
- Qt学习博客
- sg函数
- Multithreading and Grand Central Dispatch on iOS for Beginners Tutorial
- 数据结构之---C语言实现连式多项式
- 《剑指Offer》面试题:对字符串进行循环左移
- php添加socket的扩展
- Linux 下安装windows软件:例如Source Insight
- java的一些语法基础(一)
- java练习:打印 数字1、2、3、4的组合,不能以4开头,1和3不能相邻,且数字不能重复
- php环境的搭建
- java.sql.SQLException: Value'0000-00-00'异常解决
- 如何在Android模拟器上安装apk文件