#include <stdio.h>
#include <stdlib.h>typedef DataType;
typedef struct Node2{DataType xishu;DataType zhisu;struct Node2 *Next;
}Node2;
typedef struct Node2* PNode2;//多项式按照指数大小排序void insertNewPoint_link(PNode2 head,PNode2 qNode){PNode2 p=head;while (p->Next!=NULL){if (p->Next->zhisu>qNode->zhisu){qNode->Next=p->Next;p->Next=qNode;break;}p=p->Next;}if (p->Next==NULL){p->Next=qNode;}
}//打印多项式
void printLinkeLink(PNode2 head){PNode2 temp=head->Next;while (temp!=NULL){printf("%d %d",temp->xishu,temp->zhisu);printf("\n");temp=temp->Next;}
}//多项式的加法计算
void add_poly(Node2 *pa,Node2 *pb){Node2 *p=pa->Next;Node2 *q=pb->Next;Node2 *pre=pa;Node2 *u;while (p!=NULL&&q!=NULL){if (p->zhisu<q->zhisu){pre=p;p=p->Next;} else if(p->zhisu==q->zhisu){float x=p->xishu+q->xishu;if (x!=0){p->xishu=x;pre=p;} else{pre->Next=p->Next;//指向下一个结点free(p);}p=pre->Next;u=q;q=q->Next;free(u);}else{u=q->Next;q->Next=p;pre->Next=q;pre=q;q=u;}}if (q){pre->Next=q;}free(pb);
}void main( ){int zhishu;float xishu;PNode2 head1=(PNode2)malloc(sizeof(struct Node2));PNode2 head2=(PNode2)malloc(sizeof(struct Node2));PNode2 tem=NULL;head1->Next=NULL;head2->Next=NULL;printf("输入链表一的系数和指数,如:3,2 以0,0结束输入:\n");scanf("%f,%d",&xishu,&zhishu);while (xishu!=0||zhishu!=0){tem=(PNode2)malloc(sizeof(struct Node2));tem->xishu=xishu;tem->zhisu=zhishu;tem->Next=NULL;insertNewPoint_link(head1,tem);scanf("%f,%d",&xishu,&zhishu);}printf("链表一按指数升序排序后的多项式为:\n");printLinkeLink(head1);printf("\n");printf("输入链表一的系数和指数,如:3,2 以0,0结束输入:\n");scanf("%f,%d",&xishu,&zhishu);while (xishu!=0||zhishu!=0){tem=(PNode2)malloc(sizeof(struct Node2));tem->xishu=xishu;tem->zhisu=zhishu;tem->Next=NULL;insertNewPoint_link(head2,tem);scanf("%f,%d",&xishu,&zhishu);}printf("链表二按指数升序排序后的多项式为:\n");printLinkeLink(head2);printf("\n");add_poly(head1,head2);printf("多项式相加后的结果为:\n");printLinkeLink(head1);
}

转载于:https://www.cnblogs.com/crazykidhnf/p/5686239.html

数据结构C语言描述——用单链表实现多项式的相加相关推荐

  1. 数据结构_Java_基于 线性表-单链表的初始化、逆序、去重、非递减序列的合并(开辟新链表先整体插入一个链表全部元素,再遍历另外一个链表寻找合适位置插入 、开辟新链表实现舍弃原链表)等操作实现

    写在前面 不久前学习了数据结构线性表-数组-链表的相关知识,用C/C++语言实现了 单链表的系列相关操作 .见往期博客: 数据结构实验2_C语言_基于顺序表的非递减有序表的合并.线性表元素的增.删.改 ...

  2. c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言

    建立了一个单链表之后,如果要进行一些如插入.删除等操作该怎么办?所以还须掌握一些单链表的基本算法,来实现这些操作.单链表的基本运算包括:查找.插入和删除.下面我们就一一介绍这三种基本运算的算法,并结合 ...

  3. c语言用指针求Amn,[工学]第5章数据结构C语言描述耿国华.ppt

    [工学]第5章数据结构C语言描述耿国华 j=1;  for(k=1; k<=A.n; k++)  for(i=1; i<=A.len; i++) if(A.data[i].col== ...

  4. C语言单链表实现多项式

    C语言单链表实现多项式 一.多项式的存储结构 注意:多项式每项的指数必须递增 typedef struct PNode{int coef; //系数int expn; //指数struct PNode ...

  5. 猴子选王c语言链表程序代码,数据结构(C语言)用栈和链表编写猴子选大王程序...

    <数据结构(C语言)用栈和链表编写猴子选大王程序>由会员分享,可在线阅读,更多相关<数据结构(C语言)用栈和链表编写猴子选大王程序(3页珍藏版)>请在人人文库网上搜索. 1.i ...

  6. 数据结构学习(C++)——单链表应用(一元多项式【1】) (转)

    数据结构学习(C++)--单链表应用(一元多项式[1]) (转)[@more@] 总算到了这里,这时,你会很得意的说,辛辛苦苦学的单链表总算知道能干点什么了.但是很不幸,如果你和我一样看的是那本书,到 ...

  7. c语言判断顺序链表是否为空,数据结构之线性表(五)——单链表(2 初始化,判断空表,销毁,清空,求表长)...

    1.单链表(带头结点)的初始化 即,构造一个空表,如下图, 算法步骤: 1.生成新结点作头结点,用头指针L指向头结点. 2.将头指针的指针域置空. 算法描述: Status InitList_L(Li ...

  8. c语言借助栈单链表逆置,借助栈实现单链表逆置--数据结构

    标题: 借助栈实现单链表逆置 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms 描述: 用链式存储实现栈的初始化.入栈.出栈.取栈顶.判栈空等操作,在主函数中借助栈的基本 ...

  9. 数据结构之不带头结点单链表和带头结点单链表相关操作实现(C语言)

    文章目录 单链表定义 不带头结点单链表 带头结点单链表 头结点和头指针的区分 带头结点单链表优点 单链表定义 线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素. 不带头 ...

最新文章

  1. 服务器配置—开网站空间
  2. 构建区块链数字货币交易平台服务器的选择
  3. python定位文件位置_python使用相对定位,绝对定位,选取同级别文件下的指定文件(csv,excel)...
  4. 【网络编程】之三、socket网络编程
  5. 深入浅出MFC学习笔记 消息
  6. 判断点是否在三角形内
  7. illegal utf8 encoding at (190)
  8. python 黑客工具开发_python黑客软件的搜索结果-阿里云开发者社区
  9. python很有用吗_Python之父:为什么操作符很有用?
  10. 流量一天一个台阶,谈映客直播服务端架构优化之路
  11. python - zipfile模块
  12. E - 确定比赛名次(拓补排序)
  13. 深入浅出设计模式(影印版 ) 读书笔记
  14. 和利时服务器通信协议,和利时网关UDP通信协议.pdf
  15. 项目管理十大知识领域之项目整合管理
  16. 【调剂】广东海洋大学与湛江湾实验室2020年联合培养硕士研究生招生章程
  17. lise什么意思中文翻译_list中文是什么意思?
  18. Running pipenv gives TypeError: 'module' object is not callable
  19. k8s cheat sheet
  20. Android Study 之通过DialogFragment玩转高仿IOS弹框~ ^.^

热门文章

  1. 计算机网络中的名词简称(中英文对照)_第三章
  2. 2022国自然中标至少1篇1区代表作?没中接下来怎么办?
  3. ansible的变量和机密
  4. 虚拟机vmware去虚拟化过检测教程
  5. 数字图像处理之灰度化
  6. VCS与Verdi使用中遇到的问题
  7. 手把手教你开发photoshop面板插件(附demo和工具)
  8. jquery选择器连续选择_jQuery选择器简介
  9. 揭秘“1200工程”:苏宁如何培养企业接班人? | 一点财经
  10. WebApp 安全风险与防护课堂(第二讲)开课了!