1 / 36
文档名称:

数据结构报告.doc

格式:doc   页数:36页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构报告.doc

上传人:fxl8 2014/6/4 文件大小:0 KB

下载得到文件列表

数据结构报告.doc

文档介绍

文档介绍:中国地质大学
数据结构上机实****报告

课程名称数据结构



本科生专业网络工程
所在院系计算机学院
类别: 报告

目录
1. 需求分析 4
2. 设计 4
(1)设计思想 4
(2)概要设计 5
(3)详细设计...............................................................................................................................
调试分析.......................................................................................................................................
用户手册
.测试结果
源程序清单
一元稀疏多项式运算器

设计一个一元稀疏多项式简单计算器。
要求:(1)输入并建立两个多项式;
(2)多项式a与b相加,建立和多项式c;
(3)多项式a与b相减,建立和多项式d;
(4)输出多项式a,b,c,d。输出格式:比如多项式a为:A(x)=c1xe1+ c2xe2+…+ cmxem, 其中,ci和ei分别为第i项的系数和指数,且各项按指数的升幂排列,即0≤e1<e2<…<em。
设计
(1)设计思路: 定义线性表的动态分配顺序存储结构,建立多项式存储结构,定义指针*next ,利用链表实现队列的构造。定义如下的结构体
typedef struct node{
int x,z; //z是指数,x是系数
struct node *next;
}*pnode
每次输入一项的系数和指数,可以输出构造的一元多项式;演示程序以用户和计算机的对话方式执行,即在计算机终站上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运行命令;最后根据相应的输入数据(滤去输入中的非法字符)建立的多项式以及多项式相加的运行结果在屏幕上显示。多项式显示的格式为:c1x^e1+c2x^e2+…+cnx^en
(2)概要设计:本程序主要包括三个函数:
①结点创建函数,将输入的多项式化为字符串转化成一个只有系数、指数、后继的结构体。
pnode create(char *c,int i,int j)
{
if(j<i) return NULL;
int a=0,b=0,flag=0; //处理系数。
…………
…………
}
②主函数
void main()
{
cout<<"****************************************************************************"<<endl;
cout<<"***********************一元多项式的计算(和差)*****************************"<<endl;
…………
…………
}
③free()函数,将加减后合并的多余的及诶按空间释放
void free_pnode(pnode p)
{
pnode t;
while(p!=NULL)
{
t=p;
p=p->next;
free(t);
}
}
(3)详细设计
①多项式的相加
(1)功能:将两多项式相加。
(2)数据流入:输入函数。
(3)数据流出:多项式相加后的结果。
(4)程序流程图:多项式的加法流程图如图2所示。
(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。

开始
输入ch1和ch2


合并同类项
结束


同指数项系数相加后存入H中
直接把q1中各项存入H中
直接把q2中各项存入H
存储多项式ch2的空链q2是否为空
存储多项式ch1的空链q1是否为空
输出H

②多项式相减
(1)功能:将两多项式相减。
(2)数据流入:调用输入函数。
(3)数据流出:多项式相减后的结果。
(4)程序流程图:多项式的减法流程图如图3所示。
(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。
开始
输入ch1和ch2


合并同类项
结束


调用相加函数
直接把q1中各项存入H中
把q2中系数改变后存H中
存储多项式2的空链玩是否为空
存储多项式ch1的空链q1是否为空
输出H
③将多余的结点空间释放

调试分析
(1)测试的