数据结构课程设计报告

发布 2022-10-05 18:57:28 阅读 2461

课程设计报告。

一、 一元多项式计算。

1、 需求分析。

以指数和系数为参数,构建多项式,并且能够按照指数降序排列建立并输出多项式,能够完成两个多项式的相加、相减,并将结果输入。本程序包含下列几个模块:

定义节点类型。

lnodetype creat_()创建表达式。

void output_(lnodetype head)输出表达式。

lnodetype plus_(lnodetype h1,lnodetype h2)表达式相加。

lnodetype minus_(lnodetype h1,lnodetype h2)表达式相减。

int main()调用各个函数。

2、概要设计。

① 存储结构:将存储结构定义为链表类型,具体定义如下:

typedef struct nodenodetype,*lnodetype;

创建表达式:该程序运用了尾插法,每输入一个系数和指数,就形成了一个新的节点。如果新生成节点的指数大于已生成节点指数,则将该节点与已生成的节点对调;如果新生成节点的指数与已生成的节点指数相同,则对两项合并,从而能够实现多项式按照指数降序排列。

输出表达式:依次输出已形成的节点。

表达式相加:“总和多项式”链表中的结点无需另生成,而应该从两个多项式的链表中摘取。其运算规则如下:

假设指针p1和p2分别指向多项式h1和多项式h2中当前指向的结点,通过比较他们的指数大小,我们得到3种情况:

a.指针p1所指结点的指数值小于指针p2所指结点的指数值,就摘取p2指针所指结点插入到“总和多项式”p3链表中去;

b.指针p1所指结点的指数值大于指针p2所指结点的指数值,就应摘取指针p1所指结点插入到“总和多项式”p3链表中去;

c.指针p1所指结点的指数值等于指针p2所指结点的指数值,则将两个结点中的系数相加,如果相加之和不为零,就修改p1所指结点的系数值,同时释放p2所指结点;反之,从多项式p1的链表中删除相应结点,并释放指针p1和p2所指结点。

表达式相减:两个多项式的减法实现,依然调用的是多项式加法的函数,只是在调用前,把多项式二的系数全部变为相反数lp->coe=-lp->coe,然后多项式一和多项式二相加,这样就实现了多项式的相减。

3、详细设计。

typedef struct nodenodetype,*lnodetype定义结点类型。

lnodetype creat创建表达式。

lnodetype head,l,lp,lp1;

int x,z;

head=(lnodetype)malloc(sizeof(nodetype));

head->next=null;

cout<<"当您输入的系数为零时,创建表达式结束"< cout<<"请输入系数:";

cin>>x;

if(x==0)

while(x!=0)

if(head->next==null)

return head;

void output_(lnodetype head输出表达式。

lnodetype lp;

lp=head->next;

if(lp->exp==0)

cout

elsecout

lp=lp->next;

while(lp)

cout< }

lnodetype plus_(lnodetype h1,lnodetype h2表达式相加。

lnodetype h3,p1,p2,p3,lp;

h3=(lnodetype)malloc(sizeof(lnodetype

h3->next=null

p1=h1->next;

p2=h2->next;

lp=h3;

while(p1&&p2)

if(p1->exp>p2->exp)

p3=(lnodetype)malloc(sizeof(lnodetype));

p3->exp=p1->exp;

p3->coe=p1->coe;

p3->next=lp->next;

lp->next=p3;

lp=p3;

p1=p1->next;

else if(p1->expexp)

p3=(lnodetype)malloc(sizeof(lnodetype));

p3->exp=p2->exp;

p3->coe=p2->coe;

p3->next=lp->next;

lp->next=p3;

lp=p3;

p2=p2->next;

else if(p1->coe+p2->coe!=0)

p3=(lnodetype)malloc(sizeof(lnodetype));

p3->exp=p1->exp;

p3->coe=p1->coe+p2->coe;

p3->next=lp->next;

lp->next=p3;

lp=p3;

p1=p1->next;

p2=p2->next;

elsep1=p1->next

p2=p2->next;

if(p2)

while(p2)

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...