问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

急求C语言数据结构一元多项式

发布网友 发布时间:2024-11-29 10:15

我来回答

1个回答

热心网友 时间:1天前

#include "stdio.h"
#include "malloc.h"

/* 链表结点结构 */
typedef struct LNode{
double coef; /* 系数 */
int exp; /* 指数 */
struct LNode *next;
}LNode;

/* 初始化链表 */
LNode *Init()
{
LNode *head = (LNode*)malloc(sizeof(LNode));
head->next = NULL;
return head;
}

/* 将值为data的结点插入到head链表的最后 */
void AddNode(LNode *head, double coef, int exp)
{
LNode *pre = head->next;
LNode *temp;
temp = (LNode*)malloc(sizeof(LNode));
temp->coef = coef;
temp->exp = exp;
temp->next = NULL;

if(pre == NULL)
{
head->next = temp;
return;
}
for(; pre->next!=NULL; pre=pre->next);
pre->next = temp;
}

/* 输出head链表的所有结点的值 */
void List(LNode *head)
{
LNode *curr;
printf("All nodes : ");
for(curr=head->next; curr!=NULL; curr=curr->next)
{
printf("(%lf, %d)\t", curr->coef, curr->exp);
}
printf("\n");
}

/* 返回head链表的所有结点的数量 */
int Size(LNode *head)
{
int len = 0;
LNode *curr;
for(curr=head->next; curr!=NULL; curr=curr->next,len++);
return len;
}

LNode *Add(LNode *headA, LNode *headB)
{
LNode *currA, *currB, *headC;
double sum;
currA = headA->next;
currB = headB->next;
headC = Init();
while(currA!=NULL && currB!=NULL)
{
if(currA->exp > currB->exp)
{
AddNode(headC, currA->coef, currA->exp);
currA = currA->next;
}
else if(currA->exp currB->exp)
{
AddNode(headC, currB->coef, currB->exp);
currB = currB->next;
}
else
{
sum = currA->coef + currB->coef;
if(sum != 0)
{
AddNode(headC, sum, currA->exp);
}
currA = currA->next;
currB = currB->next;
}
}
while(currA != NULL)
{
AddNode(headC, currA->coef, currA->exp);
currA = currA->next;
}
while(currB != NULL)
{
AddNode(headC, currB->coef, currB->exp);
currB = currB->next;
}
return headC;
}

void main()
{
LNode *headA, *headB, *headC;
headA = Init();
headB = Init();
AddNode(headA, 1.0, 5);
AddNode(headA, -1.0, 3);
AddNode(headA, 1, 0);
AddNode(headB, 0.5, 5);
AddNode(headB, 1.0, 4);
AddNode(headB, 1.0, 3);
List(headA);
List(headB);
headC = Add(headA, headB);
List(headC);

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发摅解释 摅的组词有哪些 摅字能组哪些词 检测电脑配置的软件电脑硬件检测权威软件有哪几个 查看电脑参数的软件什么软件可以全面检测显示出电脑硬件参数数据_百度... 有没有可以查自己电脑配置的软件啊??? 芯片程序解密哪家好 ...文章怎么突然间阅读量开始大减,从几百掉到个位数。 百家号怎么才个位数播放量?个位数播放量怎么算? 保本收益投资合法吗 数据结构的 "->"符号是什么意思?举些例子说明一下子 没什么财富,希望能... 买卖房屋不过户只到公证处公证是否可以 9万方的建筑工程需要多少吨沙子 ...一个高尔夫球场需要多少资金?球场面积一般有多大?长、宽各是多少... 40万方沙子,来回60公里,租后八轮要拉多长时间?一方沙子的运费是多少... 螃蟹中的法海 新白娘子传奇法海结局 新白娘子传奇结局如何 法海最后的结局 高德地图怎么发送位置 手机高德地图分享位置信息教程 怎么样在高德地图中共享位置? 高德地图位置共享如何使用 淘客联盟优惠券回兑是真的吗?需要满足什么条件? 一淘和淘宝联盟哪个好?有什么区别? 如何使用淘客返利 著作权侵权民事责任形式包括什么? 网络小说版权该怎样保护 梨如何存放 老年人睡眠不好有哪些危害 老人失眠注意事项有哪些 老年人失眠都有什么危害呢? 苹果手机微信怎么截语音聊天记录 苹果手机怎么截图语音播放 拉稀后没有及时清洗干了裤子表面会有印子吗? 鸭子拉稀整我衣服上了怎么能洗掉 写给儿子的一句话鼓励与期望精选168句 祝儿子以后人生道路上简短寄语精选好句118句 愿儿子健康成长的句子精选139句 给孩子鼓励的寄语简短名言精选150句 愿儿子健康成长的句子精选203句 对孩子们的鼓励和希望的话语精选153句 宽带未激活之前可以用吗 宋代瓷器的底足有的也有鸡心点吗? 宋代钧瓷宋代钧瓷的艺术特征 钧瓷 三足香炉 底部有"六"字款是什么涵义?谢谢! 手办柜为什么这么贵 宙月兔为什么贵 成都火车北战到安岳的最后一般车是多久 一次量子化和二次量子化的区别 鸡的各种做法 避孕药怎么买