实验指导手册.doc
《实验指导手册.doc》由会员分享,可在线阅读,更多相关《实验指导手册.doc(48页珍藏版)》请在咨信网上搜索。
1、数据结构实验指导手册计算机教研室2023.61实验教学的目的:通过实验,加深对算法与数据结构基本知识的理解,掌握数据结构的理论和设计技术及其使用,培养学生数据结构的设计、开发能力。2实验教学的规定:学生每次实验前必须根据实验指导手册,设计出实验方案(程序和实验环节);在实验过程中规定独立进行程序调试和排错,必须学会使用在线帮助解决实验中碰到的问题,必须应用理论知识分析问题、解决问题。3实验内容:实验1:VC6的使用一、实验目的理解和掌握如何使用Visual C6.0环境编写C/C程序。二、实验环境装有Visual C6.0的计算机。本次实验共计4学时。三、实验内容1、熟悉VC6环境掌握如何创建
2、控制台应用程序。掌握一些常用快捷键,例如编译F7,运营CtrlF5,调试运营F5,单步运营F10/F11,设立断点F9,格式化代码AltF8。2、掌握如何编译程序理解编译过程中的错误信息,并掌握如何排错。3、掌握如何调试程序掌握如何通过设立断点来单步调试程序,如何查看当前变量的值。4、实验题:完毕实验教材的实验题1.1、1.2、1.3。规定:实现该实验结果。通过该实验题,熟悉VC6环境下的程序编写、编译、调试。实验2:顺序表基本运算一、实验目的(1)掌握顺序表的各种基本运算的实现。(2)可以运用基本运算进行顺序表的操作。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实
3、验内容1、顺序表基本运算实现顺序表的各种基本运算;并在此基础上设计一个主程序,完毕如下功能:(1) 初始化顺序表L(元素类型为char型)(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) 输出顺序表(12) 释放顺序表提醒:可以参考上课教材、实验教材的实验题2.1。2、顺序表的应用(选做)(1)设计通讯录(也可为其他应用)文献的存储格式和线性表的顺序存储结构(
4、2)设计在通讯录(也可为其他应用)中添加、删除、查找某个节点信息程序(3)调试程序实验3:单链表基本运算一、实验目的(1)掌握链表的概念;掌握单链表的各种基本运算的实现。(2)可以运用基本运算进行单链表的操作。(3)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实验内容实现单链表的各种基本运算;并在此基础上设计一个主程序,完毕如下功能:(1)初始化单链表L(2)依次采用尾插法插入a, b, c, d, e元素(3)输出单链表L(4)输出单链表L的长度(5)判断单链表L是否为空(6)输出单链表L的第3个元素(
5、7)输出元素a 的位置(8)在第4个元素位置上插入f元素(9)输出单链表L(10)删除单链表L的第3个元素(11)输出单链表L(12)释放单链表L提醒:可以参考上课教材、实验教材的实验题2.2。实验4:单链表综合实验一、实验目的(1)可以运用单链表的基本运算进行单链表的相关操作。(2)掌握文献的应用(3)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计4学时。三、实验内容1、通讯录设计设计一个班级同学的通讯录,规定如下: 通讯录中每个同学的信息包含以下内容:学号(id)、姓名(name)、电话号码(tel)。假如需要更多
6、其他信息,请自行添加。 程序主菜单包含以下几个功能:(1) 添加记录:通过键盘输入信息,添加一条通讯录记录。(2) 删除记录:通过键盘输入学号,删除该学号的记录。(3) 输出记录:输出通讯录所有记录。(4) 按姓名查找:通过键盘输入姓名,输出该同学的所有信息。(5) 保存记录:把通讯录中所有的记录保存到文献中。(6) 清空记录:删除通讯录中的所有记录,并删除文献。(7) 退出提醒: 程序启动时应判断是否存在记录文献,假如存在,则读取每条记录到链表中。 用户选择并完毕主菜单某功能后,除了退出程序,应当返回主菜单。 添加一条记录时,插入到链表的尾部。 查找、删除记录时,假如该记录不存在,则应当输出
7、不存在的提醒。 添加记录、删除记录时不需要写文献。 保存记录时,用覆盖写文献的方法。(或者先删除原文献,再保存所有记录信息) 各个功能模块写成函数,由主函数调用。选做: 主菜单增长一个排序功能选项,可以按照学号从小到大进行排序。排序方法可以用冒泡排序或者插入排序。实验5:链栈的基本操作一、实验目的1)熟悉栈的定义和栈的基本操作。2)掌握链式存储栈的基本运算。3)加深对栈数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实验内容必做内容: 链栈的基本操作编写栈的基本操作函数1 栈类型的定义,数据域使用char型typedef
8、char ElemType;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(Link
9、Stack* &s , ElemType x) 其中函数参数s为栈指针,x为入栈的数据。 5. 出栈:函数原型如下:int PopLinkStack (LinkStack* & s, ElemType &x)其中函数参数s为栈指针,x为出栈的数据的引用;返回值为int型,1表达出栈成功,0表达出栈失败。6取栈顶元素:(栈保持不变)函数原型如下:int GetLinkStackTop (LinkStack* s, ElemType &x)其中函数参数s为栈指针,x存放栈顶元素值;返回值为int型,1表达成功,0表达失败。编写主函数调用上述函数实现下列操作。1初始化空栈。2. 键盘输入字符,使得输
10、入的字符依次入栈(结束符号自定,例如回车键(值为10)或#) 每插入一个元素,必须输出当时的栈顶元素(调用GetLinkStackTop函数)。 3判断链栈是否为空。输出判断结果。4调用出栈函数,打印出栈元素的值;反复此环节,直至栈为空。5判断链栈是否为空。输出判断结果。6释放链栈。选做内容(一):判断对称字符串设计一个算法,调用栈的基本运算,判断一个字符串是否为对称字符串。若是返回1;否则返回0。例如:“abcba”和“abba”都是对称字符串。实验6:队列的基本操作一、实验目的1)熟悉队列的定义和队列的基本操作。2)掌握顺序循环队列和链式存储队列的基本运算。3)加深对队列数据结构的理解,逐
11、步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实验内容队列的基本操作队列的存储结构从顺序循环队列或者链队任选一种。编写一个程序,实现队列的各种基本运算,并在此基础上设计一个主程序,完毕如下功能:(1) 初始化队列q(2) 判断q是否非空(3) 依次进队元素a,b,c(4) 出队一个元素,输出该元素(5) 输出队列q的元素个数(6) 依次进队列元素d,e,f(7) 输出队列q的元素个数(8) 输出出队序列(9) 释放队列实验7:栈和队列综合实验一、实验目的(1)可以运用栈和队列的基本运算进行相关操作。(2)进一步熟悉文献的应用(3)加深队列
12、和栈的数据结构理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计4学时。三、实验内容以下两个实验任选一个。1、 迷宫求解设计一个迷宫求解程序,规定如下: 以M N表达长方阵表达迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 能任意设定的迷宫 (选作)假如有通路,列出所有通路提醒: 以一个二维数组来表达迷宫,0和1分别表达迷宫中的通路和障碍,如下图迷宫数据为:入口位置:1 1出口位置:8 8 探索过程可采用如下算法,设定当前位置的初值为入口位置;do 若当前位置可通,则将当前位置插入栈顶;若该位置是出口位置,则结束;否则切换当前位置的东邻
13、方块为新的当前位置; 否则, 若栈不空且栈顶位置尚有其他方向未经探索,则设定新的当前位置为沿顺时针方向旋转找到的栈顶位置的下一相邻块;若栈不空但栈顶位置的四周均不可通,则删去栈顶位置;/从途径中删去该通道块若栈不空,则重新测试新的栈顶位置,直至找到一个可通的相邻块出栈至栈空;while (栈不空);2、机场飞机起降的过程模拟熟悉队列的各种基本运算,并在此基础上设计一个主程序,完毕如下功能: 模拟一个机场飞机起降的过程 机场仅有一条跑道,规定起飞与降落不能同时进行 进场飞机若暂时没有跑道可用须在空中盘旋等候 离场飞机若暂时没有跑道可用须在地面排队等候 仅当空中无飞机等待降落时地面飞机方可起飞 飞
14、机的申请进场、降落、申请离场和起飞分别视为独立事件 每个事件的发生占用一个时间单位。除降落和起飞外,各事件可以同时发生提醒: 设定一个待飞队列用于存放排队等候的航班信息 设定一个待降落队列用于存放等待降落的航班信息 飞机的申请进场、降落、申请离场和起飞可以通过航班事先设定的起飞时间、飞行时间长度或者降落时间信息来拟定,这些信息可以存放在一个文献中,程序运营时从文献中读出。 航班当前状态可表达为:起飞,降落,申请进场,申请离场,空闲 每个事件的发生占用一个时间单位可以自己约定,起飞,降落可以设定为30分钟实验8:顺序串的基本操作一、实验目的1)熟悉串的定义和串的基本操作。2)掌握顺序串的基本运算
15、。3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实验内容编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下:编写栈的基本操作函数顺序串类型定义如下所示:typedef struct char chMAXSIZE; int len; SeqString;(1)串赋值 Assign(s,t)n 将一个字符串常量赋给串s,即生成一个其值等于t的串s(2)串复制 StrCopy(s,t)n 将串t赋给串s(3)计算串长度 StrLength(s)n 返回串s中字符个数(4)判断串相等StrE
16、qual(s,t)n 若两个串s与t相等则返回1;否则返回0。(5)串连接 Concat(s,t) n 返回由两个串s和t连接在一起形成的新串。(6)求子串 SubStr(s,i,j)n 返回串s中从第i(1iStrLength(s)个字符开始的、由连续j个字符组成的子串。(7)插入InsStr (s,i,t)n 将串t插入到串s的第i(1iStrLength(s)+1)个字符中,即将t的第一个字符作为s的第i个字符,并返回产生的新串(8)串删除 DelStr (s,i,j)n 从串s中删去从第i(1iStrLength(s)个字符开始的长度为j的子串,并返回产生的新串。(9)串替换 RepS
17、tr (s,s1,s2)n 在串s中,将所有出现的子串s1均替换成s2。(10)输出串DispStr(s)n 输出串s的所有元素值(11)判断串是否为空 IsEmpty(s)编写主函数调用上述函数实现下列操作:(1) 建立串s=“abcdefghijklmn”,串s1=“xyz”,串t“hijk”(2) 复制串t到t1,并输出t1的长度(3) 在串s的第9个字符位置插入串s1而产生串s2,并输出s2(4) 删除s第2个字符开始的5个字符而产生串s3,并输出s3(5) 将串s第2个字符开始的3个字符替换成串s1而产生串s4,并输出s4(6) 提取串s的第8个字符开始的4个字符而产生串s5,并输出
18、s5(7) 将串s1和串t连接起来而产生串s6,并输出s6(8) 比较串s1和s5是否相等,输出结果实验9:矩阵的基本操作一、实验目的1)熟悉数组、矩阵的定义和基本操作。2)掌握对称矩阵、稀疏矩阵等特殊矩阵的存储方式和基本运算。3)加深对数组、矩阵的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计2学时。三、实验内容以下两个实验任选一个。1、实现稀疏矩阵的转置、求和假设mn的稀疏矩阵用三元组表达,编写一个程序实现如下功能:(1) 生成如下两个稀疏矩阵的三元组a和b,并输出三元组表达。1 0 3 00 1 0 00 0 1 00 0 1 03 0
19、 0 00 4 0 00 0 1 00 0 0 2提醒:程序中可以用int A44和B44二维数组表达原始矩阵A和B。(2) 输出a的转置矩阵的三元组表达。(3) 设cab,输出c的三元组表达。2、求对称矩阵之和、乘积已知A和B为两个nn阶的对称矩阵,编写一个程序实现:(1) 将其下三角元素存储在一维数组a和b中,并输出。1 1 2 41 2 3 52 3 4 64 5 6 71 1 1 11 1 1 11 1 1 11 1 1 1提醒:程序中可以用int A44和B44二维数组表达原始矩阵A和B。(2) 设CAB,以矩阵方式输出C。(3) 设DAB,以矩阵方式输出D。实验10:字符串综合实验
20、一、实验目的1)熟悉串的定义和串的基本操作。2)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有Visual C6.0的计算机。本次实验共计4学时。三、实验内容以下两个实验任选一个。1、凯撒加密算法凯撒密码(caeser)是罗马扩张时期朱利斯凯撒(Julius Caesar)发明的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。他的原理很简朴,说到底就是字母与字母之间的替换。每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,x加密后变成a,y加密后变成b,z加密后变成c。例如:“baidu”用凯撒密码法加密后字符串变为“ed
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导 手册
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。