数据结构实验大纲Word格式.docx

上传人:b****2 文档编号:14110425 上传时间:2022-10-18 格式:DOCX 页数:12 大小:23.20KB
下载 相关 举报
数据结构实验大纲Word格式.docx_第1页
第1页 / 共12页
数据结构实验大纲Word格式.docx_第2页
第2页 / 共12页
数据结构实验大纲Word格式.docx_第3页
第3页 / 共12页
数据结构实验大纲Word格式.docx_第4页
第4页 / 共12页
数据结构实验大纲Word格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据结构实验大纲Word格式.docx

《数据结构实验大纲Word格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验大纲Word格式.docx(12页珍藏版)》请在冰豆网上搜索。

数据结构实验大纲Word格式.docx

这门课程的主要任务是培养学生的算法设计能力及良好的程序设计习惯。

通过学习,要求学生能够掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。

学习这门课程,习题和实验是两个关键环节。

学生理解算法,上机实验是最佳的途径之一。

因此,实验环节的好坏是学生能否学好《数据结构》的关键。

通过实验课程更好的训练学生算法分析及算法设计的能力。

三、主要仪器设备与实验基本要求

硬件要求:

微型计算机一台(Pentium或以上)

软件要求:

Windows操作系统,TurboC或VC++6.0等

实验要求:

1.上机前要作好充分准备,根据实验题目编写好源程序。

2.对上机操作过程中可能出现的问题预先分析,确定调试步骤和测试方法,对运行结果如何分析等。

3.上机实验完成后,认真写出实验报告,对上机中出现的问题进行分析、总结。

4.上机过程中要遵守实验室的各项规章制度,爱护实验设备,服从指导老师安排。

5.本课程的实验过程中,不得进行游戏、上网等操作。

 

四、实验项目名称和课内学时分配

序号

实验项目名称

时数

实验

属性

实验者

类别

必开

选开

每套仪器人数

实验类型

1

简单算法实验

专业类

本科生

验证

2

线性表的基本操作

综合

3

栈和队列的应用

设计

4

二叉树两种存储结构的应用

5

6

小型系统开发

(课程设计)

注:

设计性和综合性实验如课内学时不够,学生可利用开放实验室利用课余时间完成本次实验内容。

五、实验内容及要求

实验项目一

实验项目名称:

实验项目的目的和要求:

1.复习C语言指针的用法

2.复习C语言结构体的用法

3.理解时间复杂度分析的基本方法

上机实验内容:

1.用指针方式编写程序:

从键盘输入N个整型数据,并存入数组,要求将N个数中最大的数与第一个数交换;

将其中最小的数最后一个数交换。

2.有N个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。

要求从键盘依次输入N个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分数,并将N个学生的数据输出。

说明:

不占课内学时

实验项目二

实验项目的和要求:

1.掌握线性表的特点

2.掌握线性表的顺序存储结构和链式存储结构的基本运算。

3.尽可能考虑算法的健壮性

4.实验报告中要写出测试数据、错误分析以及收获。

上机实验内容一:

线性表两种存储结构的基本运算

1.用结构体类型描述线性表的两种存储结构

2.完成课堂上所讲的两种存储结构的基本运算

3.要求用二级菜单实现

*****************************

*1-------顺序表*

*2-------链表*

*0-------退出*

请输入的选择:

(0-2):

线性表的链式存储

##############################

#1----前插建立链表#

#2----后插建立链表#

#3----访问第i个元素#

#4----插入#

#5----删除#

#6----求线性表的表长#

#0----退出#

请输入选择(0-6):

上机实验内容二:

超市密码存储箱系统的设计与实现

1.顾客使用箱子的流程为“投一元硬币”--------“找到一个空箱子,同时产生密码”(系统完成)--------“打印密码,打开箱子”(系统完成)--------“取密码纸存包,并关闭箱子,入超市购物”--------“购物结束”--------“输入密码”--------“找到对应箱子并打开”(系统完成)--------“取包”。

2.现要求设计程序模拟以上系统完成的功能

①界面:

在我们的模拟系统中,箱子在屏幕上被画出来,并编号,空箱为蓝色,被使用时变成红色,再变为空后则恢复蓝色;

②通过按“1”键模拟顾客投币;

③当空箱子被顾客申请得到的同时,系统自动生成6位数密码,此密码不能与正在被使用的任何一个箱子的密码相同。

3.设计分析

在设计时,可利用链表来组织所有的箱子,所有的箱子以结点的形式表示,结点中存放箱号、密码(满箱有,空箱无)以及指向下一个结点的指针。

空箱结点放在一个链表1中,满箱结点放在另一个链表2中。

若有顾客投币(这里按下“1”键模拟),查看链表1是否为空,若为空,则显示“箱满,请稍侯!

”,若非空,则取出一个结点,随机产生一个六位数密码,并将些密码和链表2中所有结点的密码相比较,若有重复,则再随机产生一个新密码,直到无重复;

将密码信息写入此结点,并将其插入链表2;

将此箱的颜色改为红色。

4.密码箱的存储结构类型定义

typedefstructnode

{intnum;

/*箱子的号码*/

intpassword;

/*箱子的密码(满箱有,空箱无)*/

structnode*next;

/*指向下个结点的指针*/

}Node,*LinkList;

上机实验内容三:

员工通讯录管理系统

1.为某个单位建立一个员工通讯录管理系统,可以方便地查询每一个员工的办公室电话号码、手机号码及电子邮箱。

其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除以及整个通讯录表的输出。

在本设计中,整个通讯录可以采用顺序表或链表方式存储。

采用前者,可以提高查询速度;

采用后者,可以提高插入与删除记录的效率。

4.员工通讯信息的结构类型定义和通讯录链表的结点类型

typedefstruct

{charnum[5];

/*员工编号*/

charname[8];

/*员工姓名*/

charphone[9];

/*办公室电话号码*/

charcall[12];

/*手机号码*/

}DataType;

/*员工通讯信息的结构类型*/

typedefstructnode

{DataTypedata;

/*结点的数据域*/

/*结点的指针域*/

}ListNode,*LinkList;

/*通讯录链表的结构类型*/

上机实验内容四:

运动会记分子系统或学生成绩管理子系统

1.参加运动会的N个学校编号为1~N。

比赛分成M个男子项目和W个女子项目,每个项目取前3名,得分分别为5,3,2。

写一个程序产生各种成绩单和得分报表。

2.完成功能包括如下:

①产生一总成绩表,包括:

系名、男子团体总分、女子团体总分、团体总分

存储结构要求用线性表的顺序存储。

②实验报告中要写出测试数据、错误分析以及收获。

③若选择学生成绩管理子系统,可仿照运动会记分子系统完成相关的插入、删除、查找及各种统计工作。

实验项目三

实验名称:

实验目的和要求:

1.掌握栈和队列的概念和特点

2.掌握栈和队列在顺序和链式存储结构下的插入、删除算法

3.认真分析项目实例中的内容,将相关程序在计算机上运行实现

表达式求值问题

1.求一个数学表达式的值:

用户输入一个包含正整数、括号和四则运算符(“+”、“—”、“*”、“/”)的算术表达式,计算其结果。

2.设计分析

首先置操作数栈为空栈,表达式起始符“#”为运算符栈底元素;

依次读入表达式中每个字符,若是操数则进操作数栈,若是操作符则和操作符栈顶的运算符进行比较优先权后作相应的操作,直到整个表达式求值完毕(即操作符栈顶元素和当前读入的字符均为“#”)

3.结点结构类型描述如下

typedefstruct

{

char*base,*top;

intstacksize;

}sqstack;

迷宫求解问题

1.迷宫是一个m行n列的矩阵,其中0表示无障碍,1表示有障碍。

设入口为(1,1),出口为(m,n),即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;

否则沿原路退回,换一个方向再继续探索,直到出口为止。

2.迷宫的功能

要求随机生成一个m行n列的矩阵,为了操作方便可以在矩阵外围生成一圏障碍,设置东南西北四个方向,采用链栈进行操作。

最后迷宫如不是通路给出“此迷宫元解”,如是通路要求输出所走过的路径。

{introw;

intcol;

structnode*next;

};

实验项目四

1.掌握二叉树的遍历思想及二叉树的存储实现。

2.掌握二叉树的基本操作:

建立二叉树、二叉树的遍历

3.选择一种形式完成二叉树的显示

4.掌握二叉树的常见算法的程序实现

5.实验报告中要写出测试数据、错误分析以及收获

二叉树的建立及相关算法的实现

1.完成的功能包括如下几点:

①编程实现建立一棵二叉树,然后对其进行先序、中序和后序遍历。

分析:

将要输入的二叉树按照其对应的完全二叉树的顺序输入,若当前位置不存在结点则输入@

②显示二叉树

③求二叉树的高度及二叉树的叶子个数等等

④在主函数中设计一个简单的菜单,分别调试上述算法

哈夫曼编码/译码系统

1.要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。

在本例中的算法主要有:

哈夫曼树的建立;

哈夫曼编码的生成;

对编码信息的翻译。

要求设置发送者和接收者两个功能。

发送者的功能包括:

①输入待传送的字符信息;

②统计字符信息中出现的字符类数和各字符出现的次数(频率);

③根据字符的种类数和各字符出现的次数建立哈夫曼树;

④利用以上哈夫曼树求出各字符的哈夫曼编码;

⑤将字符信息转换成对应的编码信息进行传送。

接收者的功能包括:

①接收发送者传送来的编码信息;

②利用上述哈夫曼树对编码进行翻译,即将编码信息还原成发送前的字符信息。

3.结点的类型定义

①哈夫曼树的存储结构类型定义为:

typedefstruct

chardata;

/*编码对应的字符*/

intweight;

/*结点的权值*/

intlchild,rchild,parent;

/*左右孩子及双亲的下标*/

}HTNode;

②哈夫曼编码的存储结构类型定义为:

charbits[N];

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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