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