数据结构课程设计

发布 2022-10-05 01:53:28 阅读 8103

目录。1.绪论 2

1.1 前言 2

1.2 问题的提出 2

2.课程设计目的 3

3.需求分析 4

3.1 功能分析 4

3.2 设计思路 4

4.概要设计 5

4.1数据结构的选用 5

4.2多项式的输入 5

4.3主函数和其它函数 5

5.流程图设计 6

5.1函数调用关系 6

5.2程序流程图 7

6.程序** 8

7.调试运行 15

8.总结 17

参考文献 18

摘要。在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。

在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。

有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。

这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

经过一学期的学习我对数据结构的知识有所了解,运用我所学的知识来完成这个课程设计。采用c语言编写,在对于多项式的存储和计算操作中大量依赖于指针和结构体。通过尾插法建立链表,指数的比较来实现结点元素的相加减。

关键字数据结构多项式链表指针结构体

算机的应用已渗透到社会的各个领域,正在改变着人们的工作、学习和生活的方式,推动着社会的发展。归纳起来可分为以下几个方面:如科学计算(数值计算)、数据处理(信息处理)、自动控制、计算机辅助、人工智能、多**应用、计算机网络本系统用c语言作为程序语言,设计出的系统功能完善,操作方便灵活。

一元稀疏多项式简单计数器基本功能要求:

1)输入并建立多项式。

2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列。

3)多项式a和b相加,建立多项式a+b,输出相加的多项式。

4)多项式a和b相减,建立多项式a-b,输出相减的多项式。

用带表头结点的单链表存储多项式。

使我们进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。使我们掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。使我们掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。

熟练掌握数据结构这门课程,掌握线性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用。进一步熟悉抽象数据类型的定义和实现、如何利用数组的动态分酚实现顺序结构、继承的实现方式。学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、想念结构及基相应的算法并初步掌握算法的时间分析和空间分析的技术。

基本掌握程序设计的基本思路和方法。利用所学的基本知识和技能,解决简单的程序设计问题各算法描述培养我们的数据抽象能力。

本程序要求输入并建立多项式,能够降幂显示出多项式,实现多项式相加相减的计算问题,输出结果。

采用链表的方式存储链表,定义结点结构体。运用尾差法建立两条单链表,以单链表polyn p和polyn h分别表示两个一元多项式a和b。

为实现处理,社p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项。

若p->expnexpn,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。

若p->expn=q->expn,则将两个结点中的系数相加,当和不为0时修改结点p的系数。

若p->expn>q->expn,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。

typedef struct polynomial

return head;

void main()

int m,n,a,x;

char flag;

polyn pa=0,pb=0,pc;

void destroypolyn(polyn p)

void printpolyn(polyn p)

int compare(polyn a,polyn b)

polyn addpolyn(polyn pa,polyn pb)

polyn subtractpolyn(polyn pa,polyn pb)

#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){ 销毁多项式p

polyn q1,q2;

q1=p->next;

q2=q1->next;

while(q1->next){

free(q1); 释放q1

q1=q2;//指针后移,循环继续释放,直至销毁。

q2=q2->next;

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 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 初始化时每个方格都是关闭的,一个...