数据结构课程设计报告范文Word文件下载.docx

上传人:b****5 文档编号:17214613 上传时间:2022-11-28 格式:DOCX 页数:15 大小:140.79KB
下载 相关 举报
数据结构课程设计报告范文Word文件下载.docx_第1页
第1页 / 共15页
数据结构课程设计报告范文Word文件下载.docx_第2页
第2页 / 共15页
数据结构课程设计报告范文Word文件下载.docx_第3页
第3页 / 共15页
数据结构课程设计报告范文Word文件下载.docx_第4页
第4页 / 共15页
数据结构课程设计报告范文Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据结构课程设计报告范文Word文件下载.docx

《数据结构课程设计报告范文Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告范文Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

数据结构课程设计报告范文Word文件下载.docx

5.独立完成;

6.每个人需按照选题规则确定好自己的题目(注意不是多人完成一题,每人独立完成一题),不得以任何理由选择其它的题目,当然在完成自己的题目之后根据个人兴趣能够继续选做其它的题目;

7.课程设计完成后严格按照报告格式撰写课程设计报告,并于结束后的第三天上交到学习委员统一交给老师;

8.课程设计的成绩由两部分组成:

程序检查成绩(40%,每个功能占程序分的20%)+报告检查成绩(40%)+平时考核(20%)

五、实现思路

链表是一种动态数据结构,她的特点是用一组任意的存储单元(能够是连续的,也能够是不连续的)存放数据元素。

链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点。

Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束。

能够看出链表结构必须利用指针才能实现,即一个结点中必须包含一个指针变

量,用来存放下一个结点的地址。

实际上,链表中的每个结点能够用若干个数据和若干个指针。

结点中只有一个指针的链表称为单链表,这是最简单的链表结构。

再c++中实现一个单链表结构比较简单。

例如,可定义单链表结构的最简单形式如下

classlink

{

public:

elemtypedata;

link*next;

};

这里用到了结构体类型。

其中,*next是指针域,用来指向该结点的下一个结点;

Data是一个整形变量,用来存放结点中的数据。

当然,Data能够是任何数据类型,包括结构体类型或类类型。

在此基础上,我们在定义一个链表类list,其中包含链表结点的插入,删除,输出等功能的成员函数。

voidprint(link*head);

//链表结点的输出

link*Locate(link*head,elemtypex);

//链表的的查询

voidinsert(link*head,elemtypex,elemtypey);

//链表结点的插入

voiddeletel(link*head,elemtypex);

//链表结点的删除

v

oidchange(link*p,elemtypex,elemtypey);

//链表的修改

由于链表中的各个结点是由指针链接在一起的,其存储单元文笔是连续的,因此,对其中任意结点的地址无法向数组一样,用一个简单的公式计算出来,进行随机访问。

只能从链表的头指针(即head)开始,用一个指针p先指向第一个结点,然后根据结点p找到下一个结点。

以此类推,直至找到所要访问的结点或到最后一个结点(指针为空)为止。

流程图:

Public:

N

Y

q!

=NULL

q->

data==x

data=y

q=q->

next

link*q

主函数流程图

3…

4…

5…

6…

7…

N

…….

六、实现过程

#include<

iostream.h>

windows.h>

stdlib.h>

#defineelemtypeint

classlink

classlinklist

protected:

link*head;

link*rcreat()

{

link*s,*p,*r;

elemtypei;

cout<

<

"

输入多个结点数值(用空格分隔),为0是算法结束"

;

cin>

>

i;

p=r=newlink;

p->

next=NULL;

while(i)

{

s=newlink;

s->

data=i;

r->

next=s;

r=s;

cin>

}

r->

returnp;

}

voidprint(link*head)

link*p;

p=head->

next;

while(p->

next!

=NULL)

p->

data<

->

p=p->

cout<

data;

endl;

link*Locate(link*head,intx)

p=head;

intj=0;

while((p!

=NULL)&

&

(j<

x))

{p=p->

j++;

}

voiddeletel(link*head,elemtypex)

link*p,*q;

q=head;

(p->

data!

=x))

q=p;

if(p==NULL)cout<

要删除的结点不存在"

else

q->

next=p->

delete(p);

voidinsert(link*head,intx,elemtypey)

link*p,*s;

s=newlink;

s->

data=y;

if(head->

next==NULL)

head->

s->

p=Locate(head,x);

if(p==NULL)

插入位置非法"

voidchange(link*p,elemtypex,elemtypey)

link*q;

q=p->

while(q!

if(q->

data==x)q->

q=q->

intcount(link*h)

intn=0;

p=h->

while(p!

n++;

p=p->

returnn;

voidmain()

intn,act;

charm;

elemtypex,y;

linklista;

p=a.rcreat();

a.print(p);

loop1:

cout<

请选择要进行的操作:

\ne:

查找;

f:

删除;

g:

插入;

h:

修改;

i:

统计;

q:

退出;

c:

清屏。

\n"

cin>

m;

if(m=='

e'

)//根据提示选择操作

{act=1;

f'

{act=2;

g'

{act=3;

h'

{act=4;

i'

{act=5;

q'

{act=6;

c'

{act=7;

switch(act)

case1:

请输入要查找的元素值"

x;

q=a.Locate(p,x);

if(q==NULL)cout<

x<

不在表中。

找不到!

elsecout<

在表中,已找到!

gotoloop1;

break;

case2:

请输入要删除的元素"

y;

a.deletel(p,y);

case3:

请输入插入位置的元素(将待插元素插入到它的后面)"

请输入待插元素值"

a.insert(p,x,y);

case4:

请输入要修改前后的元素值"

x>

a.change(p,x,y);

case5:

n=a.count(p);

链表中结点个数为:

n<

case6:

system("

CLS"

);

//清屏

gotoloop2;

case7:

loop2:

七、实验总结(分析程序的得与失)

1、经过运行本程序能够进行链表的创立、插入、删除、修改、统计等功能,已具备链表试验的功能,基本达到了题目的要求。

2、在编写程序的过程中,对字符的判断做标记,用switch语句选择运用,使结构更加清晰,能够用goto语句进行循环。

使程序的可执行性更强。

3、本程序还是有一定缺陷,比如运行界面不够美观、但基本达到了人机交互的功能达到要求

4、对本程序自我感觉人机交互做的比较好,能够做到根据选择进行操作,主要依靠循环进行实现,同时我也加入了清屏功能,使操作更加人性化。

5、本程序的但还是比较单一,功能不是很完善,能够对界面进行设计,是其更加美观。

八、心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

经过本次为期一周的课程设计课,我有很多感触,从我拿到题目开始到完全做出程序,我经历了一个波折的一周,可是这周我受益匪浅,明白把理论用到实践中的不容易。

这是第二次做C的课程设计,比第一次稍微好一点,遇到问题都自己花时间去查找资料,知道从什么地方入手,但在实验中发现自己有很多的不足,对课本理解的不够深刻,对一些课外的知识要多接触,与拓展。

虽然有太多的困难,可是在艾老师的指导下课程设计还是顺利的完成了。

在整个课程设计的过程中老师非常耐心的给我们辅导,扮演着很重要的角色,特别是教我一些课外的知识。

在此非常感谢我的指导老师。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1