ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:126.47KB ,
资源ID:17681457      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17681457.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(11实验指导手册Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

11实验指导手册Word格式文档下载.docx

1、1、顺序表基本运算实现顺序表的各种基本运算;并在此基础上设计一个主程序,完成如下功能:初始化顺序表L(元素类型为char型)依次采用尾插法插入a, b, c, d, e元素输出顺序表L输出顺序表L的长度判断顺序表L是否为空输出顺序表L的第3个元素输出元素a 的位置在第4个元素位置上插入f元素删除顺序表L的第3个元素输出顺序表释放顺序表提示:可以参考上课教材、实验教材的实验题。2、顺序表的应用(选做)(1)设计通讯录(也可为其他应用)文件的存储格式和线性表的顺序存储结构(2)设计在通讯录(也可为其他应用)中添加、删除、查找某个节点信息程序(3)调试程序实验3:单链表基本运算(1)掌握链表的概念;

2、掌握单链表的各种基本运算的实现。(2)能够利用基本运算进行单链表的操作。(3)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。实现单链表的各种基本运算;(1) 初始化单链表L(2) 依次采用尾插法插入a, b, c, d, e元素(3) 输出单链表L(4) 输出单链表L的长度(5) 判断单链表L是否为空(6) 输出单链表L的第3个元素(7) 输出元素a 的位置(8) 在第4个元素位置上插入f元素(9) 输出单链表L(10) 删除单链表L的第3个元素(11) 输出单链表L(12) 释放单链表L实验4:单链表综合实验(1)能够利用单链表的基本运算进行单链表的相关操作。(2)掌握文件的

3、应用1、通讯录设计设计一个班级同学的通讯录,要求如下:通讯录中每个同学的信息包含以下内容:学号(id)、姓名(name)、电话号码(tel)。如果需要更多其他信息,请自行添加。程序主菜单包含以下几个功能:添加记录:通过键盘输入信息,添加一条通讯录记录。删除记录:通过键盘输入学号,删除该学号的记录。输出记录:输出通讯录全部记录。按姓名查找:通过键盘输入姓名,输出该同学的所有信息。保存记录:把通讯录中所有的记录保存到文件中。清空记录:删除通讯录中的全部记录,并删除文件。退出程序启动时应判断是否存在记录文件,如果存在,则读取每条记录到链表中。用户选择并完成主菜单某功能后,除了退出程序,应该返回主菜单

4、。添加一条记录时,插入到链表的尾部。查找、删除记录时,如果该记录不存在,则应该输出不存在的提示。添加记录、删除记录时不需要写文件。保存记录时,用覆盖写文件的方法。(或者先删除原文件,再保存全部记录信息)各个功能模块写成函数,由主函数调用。选做:主菜单增加一个排序功能选项,可以按照学号从小到大进行排序。排序方法可以用冒泡排序或者插入排序。实验5:链栈的基本操作1)熟悉栈的定义和栈的基本操作。2)掌握链式存储栈的基本运算。3)加深对栈数据结构的理解,逐步培养解决实际问题的编程能力。必做内容: 链栈的基本操作编写栈的基本操作函数栈类型的定义,数据域使用char型typedef char ElemTy

5、pe;typedef struct node ElemType data; struct node *next; LinkStack;2初始化空栈:函数原型如下: void InitLinkStack( LinkStack * & s)其中函数参数为LinkStack * & 类型,表示指向创建的空栈的指针,并且用引用方式传入。3. 判断是否空栈:int IsEmptyLinkStack(LinkStack *s ) 其中函数参数为栈指针;返回值为int型,1表示是空栈,0表示不是空栈。4. 入栈:void PushLinkStack(LinkStack* &s , ElemType x) 其

6、中函数参数s为栈指针,x为入栈的数据。5. 出栈:int PopLinkStack (LinkStack* & s, ElemType &x)其中函数参数s为栈指针,x为出栈的数据的引用;返回值为int型,1表示出栈成功,0表示出栈失败。6取栈顶元素:(栈保持不变)函数原型如下:int GetLinkStackTop (LinkStack* s, ElemType &其中函数参数s为栈指针,x存放栈顶元素值;返回值为int型,1表示成功,0表示失败。编写主函数调用上述函数实现下列操作。1初始化空栈。2. 键盘输入字符,使得输入的字符依次入栈(结束符号自定,例如回车键(值为10)或#) 每插入一

7、个元素,必须输出当时的栈顶元素(调用GetLinkStackTop函数)。3判断链栈是否为空。输出判断结果。4调用出栈函数,打印出栈元素的值;反复此步骤,直至栈为空。5判断链栈是否为空。6释放链栈。选做内容(一):判断对称字符串设计一个算法,调用栈的基本运算,判断一个字符串是否为对称字符串。若是返回1;否则返回0。例如:“abcba”和“abba”都是对称字符串。实验6:队列的基本操作1)熟悉队列的定义和队列的基本操作。2)掌握顺序循环队列和链式存储队列的基本运算。3)加深对队列数据结构的理解,逐步培养解决实际问题的编程能力。队列的存储结构从顺序循环队列或者链队任选一种。编写一个程序,实现队列

8、的各种基本运算,并在此基础上设计一个主程序,完成如下功能:初始化队列q判断q是否非空依次进队元素a,b,c出队一个元素,输出该元素输出队列q的元素个数依次进队列元素d,e,f输出出队序列释放队列实验7:栈和队列综合实验(1)能够利用栈和队列的基本运算进行相关操作。(2)进一步熟悉文件的应用(3)加深队列和栈的数据结构理解,逐步培养解决实际问题的编程能力。以下两个实验任选一个。迷宫求解设计一个迷宫求解程序,要求如下:以M N表示长方阵表示迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。能任意设定的迷宫(选作)如果有通路,列出所有通路以一个二维数组来表示迷宫,0和1分别表示迷宫中的通路和障

9、碍,如下图迷宫数据为:1101入口位置:1 1出口位置:8 8探索过程可采用如下算法,设定当前位置的初值为入口位置;do 若当前位置可通, 则将当前位置插入栈顶; 若该位置是出口位置,则结束; 否则切换当前位置的东邻方块为新的当前位置; 否则, 若栈不空且栈顶位置尚有其他方向未经探索, 则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块; 若栈不空但栈顶位置的四周均不可通, 则删去栈顶位置;有向图G的邻接矩阵: 0 5 0 7 0 0 0 0 4 0 0 0 8 0 0 0 0 9 0 0 5 0 0 6 0 0 0 5 0 0 3 0 0 0 1 0 图G的邻接矩阵转换成邻接表:

10、 0: 1 3 1: 2 2: 0 5 3: 2 5 4: 3 5: 0 4从顶点0开始的DFS: 0 1 2 5 4 3从顶点0开始的BFS: 0 1 3 2 5 4第1次查找:在0,9中查找到元素R4:5第2次查找:在5,9中查找到元素R7:8第3次查找:在8,9中查找到元素R8:9元素9的位置是812,哈希函数为H(k)=key%p,(p取13),并采用线性探查法解决冲突。在上述哈希表中查找关键字为29的记录。在上述哈希表中删除关键字为77的记录,再将其插入。【输出结果】输出结果例子如下:哈希表地址: 0 1 2 3 4 5 6 7 8 9 10 11 12 哈希表关键字: 77 54

11、16 43 31 29 46 60 74 88 90 搜索次数: 2 1 1 1 1 4 1 1 1 1 1 平均搜索长度ASL(11)= ha6.key=29 删除关键字77 哈希表地址: 54 16 43 31 29 46 60 74 88 90 1 1 1 1 4 1 1 1 1 1 平均搜索长度ASL(10)= 未找到77 插入关键字77实验19:查找综合实验1)熟悉查找的基本操作。2)掌握二叉排序树的基本运算。3)加深对查找的理解,逐步培养解决实际问题的编程能力。1、统计字符串中字符出现的次数编写一个程序,由键盘输入一个字符串,统计该字符串中出现的字符及其次数。然后输出结果。要求用一

12、个二叉树来保存处理结果,字符串中每个不同的字符用树的结点表示,结点应该包含四个域:该字符、该字符出现的次数、左子树指针、右子树指针;其中左子树的字符的ASCII码均小于该字符,右子树的字符的ASCII码均大于该字符。从字符串中依次读取字符,在二叉树中查找该字符是否存在。如果存在,则该字符的出现次数加1;如果不存在,则按照二叉排序树的要求插入该字符结点,同时设置出现次数为1。全部字符读完以后,调用二叉树的中序遍历,有序的输出每个字符及其出现的次数。2、二叉排序树【基本要求】编写一个程序,实现二叉排序树的基本运算,并在此基础上完成如下功能:由4,9,0,1,8,6,3,5,2,7创建一棵二叉排序树

13、bt,并以括号表示法输出。判断bt是否为一棵二叉排序树。采用递归和非递归两种方法查找关键字为6的结点,并输出其查找路径。分别删除bt中的关键字为4和5的结点,并输出删除后的二叉排序。创建一棵BST树: 第1步,插入4:4 第2步,插入9:4(,9) 第3步,插入0:4(0,9) 第4步,插入1:4(0(,1),9) 第5步,插入8:4(0(,1),9(8) 第6步,插入6:4(0(,1),9(8(6) 第7步,插入3:4(0(,1(,3),9(8(6) 第8步,插入5:4(0(,1(,3),9(8(6(5) 第9步,插入2:4(0(,1(,3(2),9(8(6(5) 第10步,插入7:4(0(

14、,1(,3(2),9(8(6(5,7) BST: bt是一棵BST 查找6关键字(递归): 4 9 8 6 查找6关键字(非递归): 6 8 9 4 删除操作: 原BST: 删除结点4:3(0(,1(,2),9(8(6(5,7) 删除结点5:3(0(,1(,2),9(8(6(,7)实验20:内排序1)熟悉排序的基本操作。2)掌握各种内排序的操作。3)加深对排序的理解,逐步培养解决实际问题的编程能力。编写一个程序,实现直接插入排序算法,并输出9,8,7,6,5,4,3,2,1,0的排序过程。编写一个程序,实现冒泡排序算法,并输出9,8,7,6,5,4,3,2,1,0的排序过程。编写一个程序,实现

15、快速排序算法,并输出6,8,7,9,0,1,3,2,4,5的排序过程。编写一个程序,实现直接选择排序算法,并输出6,8,7,9,0,1,3,2,4,5的排序过程。编写一个程序,实现堆排序算法,并输出6,8,7,9,0,1,3,2,4,5的排序过程。a)的输出结果例子如下:其他的输出结果类似,要求输出排序每一步骤的状态。 初始关键字 9 8 7 6 5 4 3 2 1 0 i=1 8 9 7 6 5 4 3 2 1 0 i=2 7 8 9 6 5 4 3 2 1 0 i=3 6 7 8 9 5 4 3 2 1 0 i=4 5 6 7 8 9 4 3 2 1 0 i=5 4 5 6 7 8 9 3 2 1 0 i=6 3 4 5 6 7 8 9 2 1 0 i=7 2 3 4 5 6 7 8 9 1 0 i=8 1 2 3 4 5 6 7 8 9 0 i=9 0 1 2 3 4 5 6 7 8 9 最后结果 0 1 2 3 4 5 6 7 8 9实验21:内排序综合实验某个二维数组存放了一系列的字符串,试利用排序的一些算法(如插入、冒泡、快速排序等)对这些字符串按照字典顺序进行排序。二维数组的字符串如下:char s20=“while”,”if”,“else”,”do”,“for”,”switch”,“case”;

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

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