社区
新手乐园
帖子详情
一个一元稀疏多项式求和问题?
slimjim
2006-03-21 07:40:29
刚学数据结构,老师就布置一个作业,一元稀疏多项式求和,要求,建立多项式,顺序输入,降幂输出,虽然有点认识,但是还是一知半解,不知那位高手能够赐教?
...全文
268
9
打赏
收藏
一个一元稀疏多项式求和问题?
刚学数据结构,老师就布置一个作业,一元稀疏多项式求和,要求,建立多项式,顺序输入,降幂输出,虽然有点认识,但是还是一知半解,不知那位高手能够赐教?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenhu_doc
2006-04-18
打赏
举报
回复
除了: 包含some #include "^^^^"s
和输入 输出函数printf->cout
scanf ->cin
我想就没有什么区别了哦
slimjim
2006-04-18
打赏
举报
回复
chenhu_doc((在代码中找到了我(小虎哥))) ( 你用的是C语言,
slimjim
2006-04-18
打赏
举报
回复
上楼的代码是有点繁杂,如果只用一个输出,大家调用那会好一点。这样会简单点。
chenhu_doc
2006-04-15
打赏
举报
回复
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
typedef struct LNode{
float coef;
int expn;
struct LNode *next;
}Link,*LinkList;
LinkList InitList()
{
Link * head = (LinkList)malloc(sizeof(Link));
head->coef = 0.0;
head->expn = 0;
head->next = NULL;
return head;
}
Link * MakeNode()
{
float inCoef;
int inExpn;
Link * node = (LinkList)malloc(sizeof(Link));
printf("coef : ");
scanf("%f",&inCoef);
printf("expn : ");
scanf("%d",&inExpn);
node->coef = inCoef;
node->expn = inExpn;
return node;
}
LinkList CreatePolyn()
{
int i;
int a;
Link * node = NULL;
Link * p = NULL;
Link * q = NULL;
Link * head = InitList();
printf("input the number of La's items: ");
scanf("%d",&a);
for( i=0; i < a; i++)
{
node = MakeNode();
q = head->next;
p = head;
while( q && node->expn > q->expn )
{
p = q;
q = q->next;
}
if( node->expn == 0)
{
head->coef += node->coef;
}
else if( q == NULL || node->expn < q->expn )
{
p->next = node;
node->next = q;
}
else
{
q->coef += node->coef;
}
}
return head;
}
int Compare( int aExpn, int bExpn)
{
return ( (aExpn > bExpn) ? 1 : ((aExpn == bExpn) ? 0 : -1) );
}
void DelFirst( Link * head, Link * q)
{
q = head->next;
head->next = head->next->next;
}
int ListEmpty( LinkList L)
{
if(L->next==NULL)
return 1;
else
return 0;
}
void Append(LinkList L, Link * q)
{
Link * p = L;
while( p->next )
p = p->next;
p->next = q;
}
void AddPolyn( LinkList La, LinkList Lb)
{
Link * ha = La;
Link * hb = Lb;
Link * qa = ha->next;
Link * qb = hb->next;
ha->coef += hb->coef;
while(qa && qb)
{
int aExpn, bExpn;
float aCoef,bCoef;
aExpn = qa->expn;
bExpn = qb->expn;
aCoef = qa->coef;
bCoef = qb->coef;
switch( Compare(aExpn, bExpn) )
{
case -1:
{
ha=qa;
qa=qa->next;
break;
}
case 0:
{
float sum = aCoef+bCoef;
if(sum != 0.0)
{
qa->coef = sum;
ha=qa;
}
else
{
DelFirst(ha,qa);
free(qa);
}
DelFirst(hb,qb);
free(qb);
qb = hb->next;
qa = ha->next;
break;
}
case 1:
{
DelFirst(hb,qb);
qb->next = ha->next;
ha->next = qb;
qb= hb->next;
ha= ha->next;
break;
}
}
}
if( !ListEmpty(Lb) )
Append(La,qb);
free(hb);
}
void PrintPolyn(LinkList L)
{
LinkList p= L;
while(p)
{
if(p->coef == 0.0 && p->expn == 0)
{
printf("");
p=p->next;
}
else
{
printf("%1.1f",p->coef);
if(p->expn )
printf("*x^%d",p->expn );
if(p->next && p->next->coef >0)
printf("+");
p=p->next;
}
}
printf("\n");
}
void main()
{
LinkList La = CreatePolyn();
LinkList Lb = CreatePolyn();
AddPolyn( La, Lb );
PrintPolyn( La );
}
// 也是今年开始学数据结构,花了一点时间把他做出来了。比较长,可能有冗余
stonepeter
2006-04-15
打赏
举报
回复
逻辑结构:线性表
物理结构:单链表
教材中应当有现成的程序可以用的
slimjim
2006-04-15
打赏
举报
回复
计算机,还好,经过了多天努力,终于弄出来了,。
谢谢你们的支持!!!!
sumnet
2006-03-31
打赏
举报
回复
不知道楼主学的什么专业啊
sumnet
2006-03-31
打赏
举报
回复
和楼主一样
我也是这学期刚开始学习的数据结构
你就建立一个稀疏矩阵
用三元组来进行存取
const int MaxTerm=100;
struct multinomial
{
element data[MaxTerm];
int mu,nu,tu;
}
然后对存储X的系数项的进行排序
输出
我能帮楼主的也就这么多了
slimjim
2006-03-30
打赏
举报
回复
怎么这个没有人光顾呀!
设计
一个
一元
稀疏
多项式
简单的加减法计算器
本文介绍了一种使用单链表实现
一元
稀疏
多项式
加法的方法。该方法采用升序链表存储
多项式
的系数和指数,通过遍历链表实现了
多项式
的相加运算。
一元
稀疏
多项式
计算器
本文介绍了一种使用带头结点单链表存储的
一元
稀疏
多项式
简单计算器的设计与实现,包括输入建立、加减乘求导等基本功能。详细阐述了
问题
分析、代码实现和测试数据,提供了完整的C++源代码,并展示了运行结果。
一元
稀疏
多项式
乘法
问题
本文介绍了一款
一元
稀疏
多项式
乘法简单计算器的设计与实现,采用单链表作为数据结构,实现了
多项式
的输入、输出、相乘等功能。重点介绍了算法流程、调试过程及代码实现。
【数据结构】
一元
稀疏
多项式
计算器
本文介绍了一种使用链表数据结构实现的
一元
多项式
运算方法,包括加法、减法、乘法和求导数。通过插入排序思想优化
多项式
表示,实现了高效的
多项式
运算,并以类似数学表达式的方式输出结果。
一元
稀疏
多项式
计算器 【 数据结构课设 】 仿真界面 + 代码详解
本文详细介绍了如何设计和实现
一个
一元
稀疏
多项式
计算器,包括输入建立
多项式
、输出
多项式
、加法、减法运算以及计算在特定x处的值。采用带头结点的单链表存储结构,通过插入排序保证
多项式
的降序排列。此外,还提供了
多项式
加减法的算法实现和打印输出的细节。
新手乐园
33,316
社区成员
41,771
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章