链表实现多项式求和(C语言)0

aebgt2013.06.26浏览270次分享举报

1 多项式求和中两个链表合并问题,请各位大侠帮忙啊

#include

#include

typedef struct node

{

float coef;

int exp;

struct node *next;

}link,*linklist;

linklist creatployn ()

{

linklist head,temp,now;

temp=now=(linklist)malloc(sizeof(link));

printf("请输入该项系数和指数:\n");

scanf("%f,%d",&temp->coef,&temp->exp);

temp->next=NULL;

if (temp->coef==0.0||temp->exp<0)

{

head=NULL;

free(now);

}

else head=now;

while (temp->coef!=0.0&&temp->exp>=0)//

{

now->next=temp;

now=temp;

temp=(linklist)malloc(sizeof(link));

printf("请输入该项系数和指数:\n");

scanf("%f,%d",&temp->coef,&temp->exp);

}

free(temp);

now->next=NULL;

return(head);

}

void printployn(linklist head)

{

linklist p=head;

int n=1;

printf("该表达式为:\n");

if(p==NULL)

return;

while(p!=NULL)

{

if(n==1) {printf("%fX^%d",p->coef,p->exp); n++;}

else printf("+%fX^%d",p->coef,p->exp);

p=p->next;

}

}

int compare(int x,int y) //比较两个多项式的指数

{

if(x

else if(x=y) return 0;

else return 1;

}

linklist addployn(linklist la,linklist lb) //两个多项式的合并(此处在la表上与lb表对应元素作比较,做出响应的添加删除操作,最后返回la)

{

linklist head,temp=(linklist)malloc(sizeof(link)),qa=la,qb=lb,tempa,tempb;

head=temp;

temp->next=NULL;

int a,b;

while(qa&&qb)

{

a=qa->exp; b=qb->exp;

switch (compare(a,b))

{

case -1:

temp->next=qa; temp=qa; qa=qa->next;break;//将la表的结点作为当前结点,并将la指向la表当前结点的下一结点

case 0: //合并指数相同的项

qa->coef+=qb->coef; //系数相加

if(qa->coef!=0) //系数不为零,将la表的结点作为当前结点,并释放lb表结点,再分别让qa,qb指向各自的下一结点

{

temp->next=qa;//

temp=qa;

qa=qa->next;

}

else //系数为零将当前la,lb表重的结点释放,并指向各自的下一点

{

tempa=qa;

qa=qa->next;

free(tempa);

}

tempb=qb; qb=qb->next; free(tempb);

break;

case 1:

temp->next=qb; temp=qb; qb=qb->next; //将lb表结点插入la表作为当前结点,并使qb指向下一结点

break;

}

}

if(qa) temp->next=qa;

else temp->next=qb;

tempa=head;

head=head->next;

free(tempa);

return(head);

}

void main()

{

linklist LA=creatployn();

printployn(LA);

linklist LB=creatployn();

printployn(LB);

linklist LC=addployn(LA,LB);

printployn(LC);

}

基本思路是按指数从小到大输入系数和指数,到0,0结束该多项式输入。求和部分,不引入新表,而在原来的a表上将b表元素进行插入和删除的操作。

我对链表操作概念很不清楚。在求和函数中的temp必须要给他申请空间么?我最初就把temp设成普通指针变量,通过移动他的位置来指向当前结点,但是好像链表一点都没链起来。麻烦哪位好心人能帮我详细解释一下这个链接的过程啊:)不胜感激啊!

讲的详细我追加分数!关于链表的问题已经困扰我很久了。期待高人点拨迷津~~~

用c语言链表编写便利店零售系统,链表实现多项式求和(C语言)相关推荐

  1. c语言 用计数控制的循环实现正数累加求和,C语言循环结构程序设计实验五

    福建农林大学实验报告 系(教研室):信息与机电工程系专业:机械设计制造及其自动化年级:2010 实验课程:C语言程序设计姓名:学号:实验室号: 计算机号:实验时间:2012.11.5 指导教师签字:成 ...

  2. 【原创】python语言实现半自动排班系统

    python语言实现半自动排班系统 这里写目录标题 python语言实现半自动排班系统 0. 为什么要做这个软件? 1. 本软件要实现哪些功能? 2. 具体功能实现 2.1 识别文本中的格式不一的时间 ...

  3. 考试自动评分系统C语言改错,基于XML结构的C语言考试的自动评分系统.doc

    基于XML结构的C语言考试的自动评分系统 摘 要:在C程序设计语言考试中为了解决定位难.一题多解和对于主观题没有统一的评价标准的情况,对考试系统中客观题和程序题的评分方法进行了研究.在比较结果的评分基 ...

  4. c语言中如何设计和编写一个应用系统?

    C程序中,如何设计和编写一个应用系统? 一. C语言文件的操作 1. 文件操作的基本方法: C语言将计算机的输入输出设备都看作是文件.例如,键盘文件.屏幕文件等. 向屏幕输出一个信息,例如" ...

  5. C语言编程>第十一周 ② N名学生的成绩已在主函数中放入一个带头结点的链表结构中,a指向链表的头结点。请编写函数fun,它的功能是:找出学生的最高分,由函数返回。

    例题:N名学生的成绩已在主函数中放入一个带头结点的链表结构中,a指向链表的头结点.请编写函数fun,它的功能是:找出学生的最高分,由函数返回. 请勿改动主函数main与其它函数中的任何内容,仅在函数f ...

  6. C语言编程题—N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。例如,若学生的成绩是:85,76,69,85,91,

    C语言编程题 设计程序,N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点.请编写函数fun,它的功能是:求出平均分,由函数值返回.例如,若学生的成绩是:85,76,69,85 ...

  7. c语言ktv点歌系统链表,C语言链表实现歌手评分系统

    本文实例为大家分享了C语言链表实现歌手评分系统的具体代码,供大家参考,具体内容如下 此程序可以添加文件操作用于保存歌手得分等信息,此程序实现了链表的增删查和链表冒泡排序交换节点功能 #include ...

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

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

  9. 用C语言链表编写学生成绩管理系统

    本代码供读者学习使用,请不要随意转载. 一.设计题目:学生成绩管理系统 二.目的与要求 每位学生记录包含有学号.姓名.性别.出生日期.三门功课的成绩(高等数学.大学英语.C语言).总分和平均分 系统菜 ...

最新文章

  1. 【转】测试LibreOffice SDK 开发环境配置(Windows)
  2. Spring4整合Hibernate4出现的错误的解决
  3. GoldenGate 配置extract,replicat进程自启动
  4. JavaScript基本概念(下)
  5. 信息学奥赛一本通(1319:【例6.1】排队接水)
  6. pytorch使用早停策略
  7. Keras中的两种模型:Sequential和Model
  8. 一套C#图书管理系统源码 书籍借还登记统计系统源码
  9. CodeMeter:软件加密的“木桶定律”
  10. 要重复多少次变成潜意识_一种行为,多次重复后就能进入人的潜意识
  11. Unity3D中如何制作身临其境的3d音效
  12. 中国经济八问-中国视角下的宏观经济
  13. 《Spring Cloud微服务架构实战派》PDF样章
  14. java毕业设计奥利给共享自习室系统(附源码、数据库)
  15. 基于scrapy下的租房信息爬取与数据展示工具的设计与实现
  16. STM32的引脚的配置
  17. 鸿蒙os第四次培训(菜单 页面跳转)
  18. 给你一个App,你将如何测试?
  19. 浅谈穿越机飞控如何烧写固件及其相关设置问题
  20. [半监督学习] Virtual Adversarial Training: A Regularization Method for Supervised and SSL

热门文章

  1. Spring boot自动注册DispatcherServlet
  2. Oracle的in查询
  3. BeanUtils工具的使用
  4. RocketMQ入门到入土(一)新手也能看懂的原理和实战!
  5. 这些最常用的Linux命令,每一条都应该学会!
  6. 几个面试官常问的垃圾回收器,下次面试就拿这篇文章怼回去!
  7. Qt creator 编译错误 :cannot find file .pro qt
  8. MySQL数据库乱码 - Linux下乱码问题解决
  9. String类split方法
  10. Nginx-windows下nginx安装、配置与使用