社区
新手乐园
帖子详情
一个一元稀疏多项式求和问题?
slimjim
2006-03-21 07:40:29
刚学数据结构,老师就布置一个作业,一元稀疏多项式求和,要求,建立多项式,顺序输入,降幂输出,虽然有点认识,但是还是一知半解,不知那位高手能够赐教?
...全文
211
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
打赏
举报
回复
怎么这个没有人光顾呀!
一元
稀疏
多项式
运算代码
设计程序,输入两个一元
稀疏
多项式
, 分别完成二者的加法、减法、乘法运算,输出和
多项式
、差
多项式
、乘积
多项式
, 并求
多项式
在x(double型)处的值。要求: 1、分别以顺序表和单链表为存储结构实现
多项式
的加法和减法运算。 2、乘法运算的实现使用单链表为存储结构
一元
稀疏
多项式
计算器
一元
稀疏
多项式
计算器的基本功能是: 1、 并建立
多项式
; 2、 出
多项式
,输出形式为整数序列:n,c1,e1,c2,e2,….,cn,en, 其中n是
多项式
的项数,ci和ei分别是第I项的系数和指数,序列按照指数降序排列; 3、
多项式
a和b相加,建立
多项式
a+b; 4、
多项式
a和b相减,建立
多项式
a-b.
一元
多项式
的
稀疏
计算c语言代码
用链式存储结构实现
稀疏
一元
多项式
运算器 功能基本要求:创建、显示、
求和
(求差)、求值;销毁、清空、修改(添加项、删除项、改系数指数)
高次
稀疏
多项式
实验报告
【基本要求】 输入m项的系数和指数,建立表示一元
多项式
的有序链表的P 一元
多项式
求和
,返回正确的
多项式
值 一元
多项式
求差 一元
多项式
求积 显示正确的
多项式
值 【测试数据】 对下列数据 2 1,3 3,0 0 1 1,4 4,0 0
求和
3 1,3 3,4 4 求差1 1,3 3,-4 4 求积2 2,8 5,3 4,12 12
一元
稀疏
多项式
简单计算器(C语言)含注释
一元
稀疏
多项式
简单计算器(C语言)含注释
问题
描述 设计一个一元
稀疏
多项式
简单计算器 基本要求 一元
稀疏
多项式
简单计算器的基本功能是: (1)输入并建立
多项式
; (2)输出
多项式
,输出形式为整数序列:n,c1,e1,c2,e2,……,cn,en,其中n是
多项式
的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列; (3)
多项式
a和b相加,建立
多项式
a+b; (4)
多项式
a和b相减,建立
多项式
a-b。
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章