c语言链表是怎么存储数据结构,数据结构(C语言)用单链表存储一元多项式,并实现... 数据结构一元多项式计算(急求)...

导航:网站首页 >

数据结构(C语言)用单链表存储一元多项式,并实现... 数据结构一元多项式计算(急求)

数据结构(C语言)用单链表存储一元多项式,并实现... 数据结构一元多项式计算(急求)

相关问题:

匿名网友:

#include

#include

#include

typedef int ElemType;

/*单项链表的声明*/

typedef struct PolynNode{

int coef; // 系数

int expn; // 指数

struct PolynNode *next; }PolynNode,*PolynList;

/*正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表*/

/*指数系数一对一对输入*/ void CreatePolyn(PolynList &L,int n)

{

int i;

下载

原文档已转码为如下格式,以便移动设备查看

数据结构(c语言)用单链表存储一元多项式,并实现两个多项式的相加运算【最新】

阅读:1037次 页数:36页 2016-03-21 举报

#include

#include

#include

typedef int ElemType;

/*单项链表的声明*/

typedef struct PolynNode{

int coef; // 系数

int expn; // 指数

struct PolynNode *next; }PolynNode,*PolynList;

/*正位序(插在表尾)输入n个元素的值,建立带表头结构的单链线性表*/

/*指数系数一对一对输入*/ void CreatePolyn(PolynList &L,int n)

{

int i;

PolynList p,q;

L=(PolynList)malloc(sizeof(PolynNode)); // 生成头结点

L->next=NULL;

q=L;

printf("成对输入%d个数据\n",n);

for(i=1;i<=n;i++)

{

p=(PolynList)malloc(sizeof(PolynNode));

scanf("%d%d",&p->coef,&p->expn); //指数和系数成对输入

q->next=p;

q=q->next;

}

p->next=NULL;

}

// 初始条件:单链表L已存在

// 操作结果: 依次对L的每个数据元素调用函数vi()。一旦vi()失败,则操作失败

void PolynTraverse(PolynList L,void(*vi)(ElemType, ElemType)) {

PolynList p=L->next;

while(p)

{

vi(p->coef, p->expn);

if(p->next)

{

printf(" + "); //“+”号的输出,最后一项后面没有“+”

}

p=p->next;

}

printf("\n");

}

/*ListTraverse()调用的函数(类型要一致)*/ void visit(ElemType c, ElemType e) {

if(c != 0)

{

printf("%dX^%d",c,e); //格式化输出多项式每一项

}

}

/* 多项式相加,原理:归并 */ /* 参数:两个已经存在的多项式 */ /* 返回值:归并后新的多项式的头结点 */

PolynList MergeList(PolynList La, PolynList Lb) {

PolynList pa, pb, pc, Lc;

pa = La->next;

pb = Lb->next;

Lc = pc = La; // 用La的头结点作为Lc的头结点

while(pa&&pb)

{

if(pa->expn < pb->expn)

{

pc->next = pa; //如果指数不相等,pc指针连上指数小的结

点,

pc = pa;

pa = pa->next; //指向该结点的指针后移

}

else if (pa ->expn > pb->expn )

{

pc->next = pb; //pc指针连上指数小的结点,

pc = pb;

pb = pb->next; //指向该结点的指针后移

}

else //(pa ->expn = pb->expn )

{

pa->coef = pa->coef + pb->coef; //指数相等时,系数相加

pc->next = pa;

pc = pa;

pa = pa->next; //两指针都往后移

pb = pb->next;

}

}

pc->next = pa ? pa:pb; // 插入剩余段

return Lc;

}

void main()

{

PolynList ha,hb,hc;

printf("非递减输入多项式ha, ");

CreatePolyn(ha,5); // 正位序输入n个元素的值

printf("非递减输入多项式hb, ");

CreatePolyn(hb,5); // 正位序输入n个元素的值

匿名网友:

1.数据结构(C语言)用单链表存储一元多项式,并实现...

答:#include #include #include typedef int ElemType; /*单项链表的声明*/ typedef struct PolynNode{ int coef; // 系数 int expn; // 指数 struct PolynNode *next; }PolynNode,*PolynList; /*正位序(插在表尾)输入n个元素的值,建立带表头结构的...

2.数据结构一元多项式计算(急求)

问:任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加...

3.一元多项式可抽象哪种数据结构?这种数据结构有什...

答:线性的单链表结构

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

问:实验要求如图

5.c语言数据结构 一元多项式的加减 补齐代码

问:如图要求 c语言数据结构 一元多项式的加减 补齐代码 最好有一些注释

6.一元多项式相加 数据结构

问:#include #include typedef struct node { int coaf...

7.数据结构一元多项式相加

问:求C语言程序:f(X)=x^10+x^7+x^3+1加g(x)=x^5+3x^3+x^2+1

8.高分 C++数据结构,一元多项式的相乘

问:①设计带表头结点的单链表表示的多项式类。在该类上定义和实现程序B的多...

9.数据结构c语言 用单链表储存一元多项式,并实现两...

问:#include #include #define MAX 20 //多项式最多项...

10.用C++数据结构编程:一元多项式的表示和相加

问:Pn(x)=P0+P1x+P2x*x+P3x*x*x.........+Pnx*n

问题推荐

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值