安徽省巢湖学院计算机与信息工程学院。
课程设计报告。
课程名称数据结构。
课题名称一元稀疏多项式计算器
专业计算机科学与技术
班级10计本(1)班
学号10012069
姓名邵京阳。
****150
指导教师江家宝。
2023年12月28日。
目录。1、课程题目 1
2、需求分析 1
3、测试数据 2
4、概要设计 2
5、调用关系图 3
6、程序** 3
7、测试结果 10
8、心得体会及总结 13
一元稀疏多项式计算器。
1、一元稀疏多项式简单计算器的功能是:
1.1 输入并建立多项式;
1.2 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,……cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;
1.3 求多项式a、b的导函数;
1.4 计算多项式在x处的值;
1.5多项式a和b相加,建立多项式a+b;
1.6 多项式a和b相减,建立多项式a-b。
2、设计思路:
2.1 定义线性表的动态分配顺序存储结构;
2.2 建立多项式存储结构,定义指针*next
2.3利用链表实现队列的构造。每次输入一项的系数和指数,可以输出构造的一元多项式。
2.4演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的输入数据(滤去输入中的非法字符)建立的多项式以及多项式相加的运行结果在屏幕上显示。多项式显示的格式为:
c1x^e1+c2x^e2+…+cnx^en
3、设计思路分析。
要解决多项式相加,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以我将结点结构体定义为。
运用尾插法建立两条单链表,以单链表polyn p和polyn h分别表示两个一元多项式a和b,a+b的求和运算等同于单链表的插入问题(将单链表polyn p中的结点插入到单链表polyn h中),因此“和多项式”中的结点无须另生成。
为了实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项,由此得到下列运算规则:
若p->expnexpn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。
若p->expn=q->expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。
若p->expn>q->expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。
a):(3x^2+4x^2)+x+x^3+2x^4=7x^2+x+ x^3+2x^4
b):(2x^3+4x^2)+(x^2+5x^3)=5 x^2+7 x^3
1、元素类型、结点类型和指针类型:
typedef struct polynomial
return head;
3、主函数和其他函数:
void main()
int m,n,a,x;
char flag;
polyn pa=0,pb=0,pc;
float valuepolyn(polyn head,int x) /输入x值,计算并返回多项式的值。
#include<>
#include<>定义多项式的项。
typedef struct polynomial
if(q2&& p->expn ==q2->expn)
将指数相同相合并。
q2->coef +=p->coef;
free(p);
if(!q2->coef)
系数为0的话释放结点。
q1->next=q2->next;
free(q2);
else指数为新时将结点插入。
p->next=q2;
q1->next=p;
polyn createpolyn(polyn head,int m建立一个头指针为head、项数为m的一元多项式。
int i;
polyn p;
p=head=(polyn)malloc(sizeof(struct polynomial));
head->next=null;
for(i=0;i
return head;
void destroypolyn(polyn p销毁多项式p
polyn q1,q2;
q1=p->next;
q2=q1->next;
while(q1->next)
void printpolyn(polyn p)
while(q)else
if(q->coef==1)
if(!q->expn) putchar('1');
else if(q->expn==1) putchar('x');
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...