《数据结构》课程设计

发布 2022-10-01 20:37:28 阅读 3306

安徽省巢湖学院计算机与信息工程学院。

课程设计报告。

课程名称数据结构。

课题名称一元稀疏多项式计算器

专业计算机科学与技术

班级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 初始化时每个方格都是关闭的,一个...