《数据结构》实 验 指 导 书doc.docx
《《数据结构》实 验 指 导 书doc.docx》由会员分享,可在线阅读,更多相关《《数据结构》实 验 指 导 书doc.docx(16页珍藏版)》请在冰豆网上搜索。
《数据结构》实验指导书doc
《数据结构(C#)》
实验指导书
软件学院
—、上机实验的指导思想和要求
1.1上机实验的目的
上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编的程序正确与否。
上机实验的目的是:
(1)加深对讲授内容的理解,光靠课堂讲授,既枯燥无味又难以记住,但它们是很重要的,通过多次上机,就能自然地、熟练地掌握。
(2)熟悉所用的计算机系统的操作方法,也就是了解和熟悉C#程序开发的环境。
一个程序必须在一定的外部环境下才能运行,所谓“环境”,就是指所用的计算机系统的硬件和软件条件,或者说是工作平台。
使用者应该了解为了运行一个C#程序需要哪些必要的外部条件(例如硬件配置、软件配置),可以利用哪些系统的功能来帮助自己开发程序。
每一种计算机系统的功能和操作方法不完全相同,但只要熟练掌握一两种计算机系统的使用,再遇到其他系统时便会触类旁通,很快地学会。
(3)学会上机调试程序。
也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。
经验丰富的人,在编译连接过程中出现“出错信息”时,一般能很快地判断出错误所在,并改正之。
而缺乏经验的人即使在明确的“出错提示”下也往往找不出错误而求助于别人。
要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,还要求自己动手实现。
对程序设计来说,则要求会编程序并上机调试通过。
因此调试程序不仅是得到正确程序的一种手段,而且它本身就是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。
调试程序固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来累积经验,而且有些经验是只能“会意”难以“言传”。
别人的经验不能代替自己的经验。
调试程序的能力是每个程序设计人员应当掌握的一项基本功。
因此,在做实验时千万不要在程序通过后就认为万事大吉、完成任务了,而应当在已通过的程序基础上作一些改动(例如修改一些参数、增加程序一些功能、改变某些语句等),再进行编译、连接和运行。
甚至于“自设障碍”,即把正确的程序改为有错的,观察和分析所出现的情况。
这样的学习才会有真正的收获,是灵活主动的学习而不是呆板被动的学习。
1.2上机实验前的准备工作
在上机实验前应事先做好准备工作,以提高上机实验的效率,准备工作至少应包括:
(1)了解所用的计算机系统的性能和使用方法;
(2)复习和掌握与本实验有关的教学内容;
(3)准备好上机所需的程序。
手编程序应书写整齐,并经人工检查无误后才能上机,以提高上机效率。
初学者切忌不编程序或抄袭别人程序去上机,应从一开始就养成严谨的科学作风;
(4)对运行中可能出现的问题事先做出估计,对程序中自己有疑问的地方,应作出记号,以便在上机时给予注意:
(5)准备好调试和运行时所需的数据。
1.3实验报告要求、实验考核方式、内容及成绩评定标准
实验报告要求:
报告为电子形式,要求学生独立认真完成并在实验结束前提交实验报告。
实验考核方式、内容:
实验课的出勤情况,程序的编制、调试与运行情况,实验报告情况。
实验考核方式、内容及成绩评定标准:
1.没有完成实验的基本要求,不及格
2.没有提交实验报告,不及格
3.实验报告抄袭者,不及格
4.违反实验纪律,不及格
5.独立完成实验,但实验报告中错误较多,及格
6.完成实验基本要求,实验报告符合基本要求,有一些错误,中
7.完成实验基本要求,实验报告符合要求,有较少错误,良好
8.完成实验要求的基础上,实验报告符合符要求,很少错误,优秀
二、实验内容
实验一线性表的操作
(1)
【实验目的】
1、熟悉集成开发环境MicrosoftVisualStudio2010,在此环境下能够创建程序。
2、掌握建立顺序表的基本方法。
3、理解和掌握顺序表的基本运算思想和实现。
【实验内容】
设计顺序表的基本运算,并用相关数据进行测试。
(1)新建一个Windows应用程序项目SqList。
(2)设计顺序表的基本运算类SqListClass,类的代码放在Class1.cs文件中,对应代码见SqListClass.txt文件。
(3)设计对应的窗体Form1,其设计界面如图所示,用户输入元素序列,以逗号分隔元素,然后按命令按钮提示进行操作。
实验二线性表的操作
(2)
【实验目的】
1、掌握建立单链表的基本方法。
2、理解和掌握单链表的基本运算思想和实现。
【实验内容】
设计单链表的基本运算。
(1)新建一个Windows应用程序项目SqList。
(2)设计单链表表的结点类LinkList和基本运算类LinkListClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体Form1,其设计界面如图所示,用户输入元素序列,以逗号分隔元素,然后按命令按钮提示进行操作。
实验三栈、队列的操作
【实验目的】
1、熟练掌握栈的基本操作。
2、熟练掌握队列的基本操作。
【实验内容】
设计栈和队列的基本运算。
(1)新建一个Windows应用程序项目StackQueue。
(2)设计顺序栈类SqStackClass、链栈类LinkStackClass、顺序队列类SqQueueClass和链队列类LinkQueueClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体Form1,其设计界面如图所示,然后按命令按钮提示进行操作。
实验四二叉树的操作
(1)
【实验目的】
1、掌握二叉树的创建算法;
2、掌握二叉树的输出算法。
【实验内容】
设计二叉树的基本运算。
(1)新建一个Windows应用程序项目BTree1。
(2)设计二叉树的结点类型类BTNode和二叉树类BTNodeClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体Form1,其设计界面如图所示,用户输入使用括号表示法表示的一棵二叉树,然后按命令按钮提示进行操作。
实验五二叉树的操作
(2)
【实验目的】
1、掌握二叉树的创建算法;
2、掌握二叉树的输出算法;
3、掌握二叉树的遍历算法。
【实验内容】
在实验四的基础上,设计二叉树的基本运算。
(1)新建一个Windows应用程序项目BTree1。
(2)设计二叉树的结点类型类BTNode和二叉树类BTNodeClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体Form1,其设计界面如图所示,用户输入使用括号表示法表示的一棵二叉树,然后按命令按钮提示进行操作。
实验六图的操作
【实验目的】
1、掌握图的存储结构。
2、理解和掌握图的深度和广度遍历算法。
【实验内容】
边结点类型、表头结点类型、图的邻接表类型定义如下:
classArcNode//边结点类型
{
publicintadjvex;//该边的终点编号
publicArcNodenextarc;//指向下一条边的指针
publicintweight;//该边的相关信息,如边的权值
};
structVNode//表头结点类型
{
publicArcNodefirstarc;//指向第一条边
};
structALGraph//图的邻接表类型
{
publicVNode[]adjlist;//邻接表数组
publicintn,e;//图中顶点数n和边数e
};
设计图的基本运算。
(1)新建一个Windows应用程序项目Graph。
(2)设计图类GraphClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体,其设计界面如图所示,然后按命令按钮提示进行操作。
实验七排序(1)
【实验目的】
1、掌握直接插入排序的思想和实现。
2、掌握快速排序的思想和实现。
【实验内容】
设计排序算法。
(1)新建一个Windows应用程序项目Sort。
(2)设计顺序表排序类InterSortClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体,其设计界面如图所示,然后按命令按钮提示进行操作。
实验八排序(2)
【实验目的】
1、掌握堆排序的思想和实现。
2、掌握希尔排序的思想和实现。
3、掌握冒泡排序的思想和实现。
【实验内容】
设计排序算法,在上次实验基础上继续完善程序功能。
(1)完善顺序表排序类InterSortClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体,其设计界面如图所示,然后按命令按钮提示进行操作。
实验九 查找
【实验目的】
1、掌握顺序查找的思想和实现。
2、掌握折半查找的思想和实现。
2、掌握索引查找的思想和实现。
【实验内容】
设计顺序表查找算法。
(1)新建一个Windows应用程序项目LineSearch。
(2)设计顺序表查找类SqListSearchClass,类的代码放在Class1.cs文件中,对应代码见Class1.txt文件。
(3)设计对应的窗体,其设计界面如图所示,实现顺序查找、折半查找和索引查找然,后按命令按钮提示进行操作。
实验十综合
【实验目的】
1、复习线性表、排序、查找等相关知识。
2、掌握学生管理系统或综合测试。
【实验内容】
综合所学知识,完成学生管理系统的查询、插入删除、排序等操作或进行基础算法上机测试。