当前位置:文档之家› 数据结构多项式求和

数据结构多项式求和

数据结构与算法
上机实验报告(一)
上机实验题目:一元多项式的表示及相加
专业班级:信息与计算科学1401班
姓名:邢鑫锋学号:140701211 设计室:理学院机房
上机时间: 2015-11-10 上机学时: 4学时
指导教师:杜洪波成绩:
一.实验目的:
1、进一步熟练掌握应用链表处理实际问题的能力
2、
二.实验内容:
1、一元多项式相加是通过键盘输入两个形如 P0+P1X1+P2X2+。

+PnXn 的多项式,经过程序运算后在屏幕上输出它们的相加和。

2、
3、
三、程序及注释:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct Node
{
int Data;
Node* next;
}SLNode;
void listInt(SLNode **T)
{if((*T=(SLNode*)malloc(sizeof(SLNode)))==NULL) exit(1);
(*T)->next=NULL;
}
void Create(SLNode *T,int n)
{
SLNode *p;
int i;
p=T;
for(i=0;i<n;i++)
{
SLNode *q=(SLNode*)malloc(sizeof(SLNode));
p->next=q;
printf("请输入链表数据\n");
scanf("%d",&q->Data);
p=q;
}
}
void Addtion(SLNode*T,SLNode*B,SLNode*C,int n) {
int i;
SLNode *p;
p=C;
for(i=0;i<n;i++)
{
SLNode *q=(SLNode*)malloc(sizeof(SLNode));
p->next=q;
T=T->next;
B=B->next;
q->Data=T->Data+B->Data;
p=q;
}
}
int main()
{
int j=0;
SLNode*T;SLNode*B;SLNode*C;
listInt(&T);
listInt(&B);
listInt(&C);
int n;
printf("请输入相加多项式的最大阶数\n");
scanf("%d",&n);
printf("请建立第一个多项式\n");
Create( T, n);
printf("请建立第二个多项式\n");
Create( B, n);
Addtion(T, B, C, n);
for(;j<n;j++)
{if(j!=n-1)
{ C=C->next;
printf("%d*x^%d+",C->Data,n-j);
}
else
{ C=C->next;
printf("%d*x^%d\n",C->Data,1);
}
}
return 0;
}
四.运行结果:
五.实验心得:
备注:页码不够可多加页码!。

相关主题