题目一:设计一元稀疏多项式简单计数器。
题目二:集合的交、并和差运算。
班级: 计科1201
姓名: 杜晓燕。
学期:2013-2014学年第二学期。
一、课程题目。
一元稀疏多项式计算器。
二、问题描述。
设计一元稀疏多项式简单计数器。
三、基本要求。
1、输入并建立多项式,输出多项式,序列按指数降序排列;
2、多项式a和b相加,建立多项式a+b,输出相加的多项式;
3、多项式a和b相减,建立多项式a-b,输出相减的多项式;
4、用带表头结点的单链表存储多项式。
四、测试数据。
1、(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(3.1x^11+11x^9+2x+7);
2、(6x^-3-x+4.4x^2-1.2x^9+1.2x^9)-(6x^-3+5.4x^2-x^2+7.8x^15
=(-7.8x^15-1.2x^9+12x^-3-x);
3、(1+x+x^2+x^3+x^4+x^5)+(x^3-x^4)=(1+x+x^2+x^5);
4、(x+x^3)+(x-x^3)=0.
五、算法思想。
1、定义线性表的动态分配顺序存储结构;
2、建立多项式存储结构,定义指针*next;
3、利用链表实现队列的构造。每次输入一项的系数和指数,可以输出构造的一元多项式;
4、设计思路分析:
要解决多项式相加,必须要有多项式,所以必须首先建立两个多项式,在这里采用链表的方式存储链表,所以我将结点结构体定义为。
运用尾插法建立两条单链表,以单链表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在原来的链表上后移。
六、模块划分。
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
else指数为新时将结点插入即p->expn>q2expn情况。
p->next=q2;
q1->next=p;
//insert
polyn createpolyn(polyn head,int m)
return head;
//createpolyn
void destroypolyn(polyn p)
void printpolyn(polyn p)
while (q)//while
printf("");
//printpolyn
int compare(polyn a,polyn b){
if(a&&b){
if(!b||a->expn>b->expn) return 1;
else if(!a||a->expnexpn) return -1;
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 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 初始化时每个方格都是关闭的,一个...