《数据结构C++》实验指导书.docx
- 文档编号:6257822
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:10
- 大小:108.18KB
《数据结构C++》实验指导书.docx
《《数据结构C++》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数据结构C++》实验指导书.docx(10页珍藏版)》请在冰豆网上搜索。
《数据结构C++》实验指导书
《数据结构》实验指导书
(适用于计算机科学与技术)
目录
前言1
实验一不带头结点的单链表2
实验二病人就医管理5
实验三文本串的加密8
实验四用二叉树表示表达式10
前言
《数据结构》是计算机科学与技术、软件工程等专业的专业基础必修课,主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。
本课程的学习应使学生深刻地理解数据结构的逻辑结构和物理结构的基本概念及有关算法,培养学生基本的、良好的程序设计技能以及针对具体问题,选择适当的数据结构,设计出有效算法的能力。
《数据结构》是一门理论和实践相结合的课程,它在整个计算机专业教学体系中处于举足轻重的地位,是计算机科学的算法理论基础和软件设计的技术基础,其上机实验的目的主要是编程实现数据结构各章的主要算法,训练学生实际动手进行程序设计和程序调试的能力,加深对数据结构相关概念和算法的理解。
实验一不带头结点的单链表
姓名:
座号:
级专业
实验地点:
指导老师日期:
【实验课程名称】数据结构
【实验项目名称】不带头结点形式的单链表
【实验目的】
1掌握线性表链式存储基本操作;
2实现不带头结点形式的单链表;
3学会设计实验数据验证程序。
【实验仪器及环境】计算机,windowxp操作系统,VC++6.0
【实验内容及步骤】
1.实验分析
定义不带头结点的单链表类simplelklistwithoutheadnode
包括数据成员:
linknode
辅助函数:
simplelklistwithoutheadnode(simplelklistwithoutheadnode
//复制构造函数
boolempty(){returnfirst==NULL;}//判断线性表是否为空
voidclear();//将线性表清空
linknode
linknode
boolgetdata(inti,T&x);//取出第i个元素的值
boolsetdata(inti,T&x);//用x修改第i个元素的值
voidinit(){first=NULL;}//初始化线性表
intlength()const;//求线性表的长度
boolinsert(inti,constT&x);//将x插入在第i个位置
boolDelete(inti,T&x);//删除第i个元素,用x返回
simplelklistwithoutheadnode
(simplelklistwithoutheadnode
voidoutput();//输出
2.实验步骤
(1)建立工程simple_lk_list_without_head_node
(2)将utility.h和node.h复制到simple_lk_list_without_head_node文件夹中,并将utility.h和node.h加入到工程中。
(3)建立头文件simple_lk_list_without_head_node.h,声明不带头结点的单链表类,并实现相关的成员函数;
(4)建立源程序文件main.cpp,实现main()函数;
(5)编译及运行不带头结点的单链表测试程序;
【测试与结论】
【思考与感悟】
【源代码说明】
实验二病人就医管理
姓名:
座号:
级专业
实验地点:
指导老师日期:
【实验课程名称】数据结构
【实验项目名称】病人就医管理
【实验目的】
1掌握练队列存储结构的基本操作;
2理解如何根据具体应用选择适当的数据结构解决问题;
【实验仪器及环境】计算机,windowxp操作系统,VC++6.0
【实验内容及步骤】
1目标与要求
编写一个程序,反映病人到医院看病,排队看医生的情况。
在病人排队的过程中,主要发生两件事。
(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。
(2)护士从等待的队列中取出一位病人的病历,该病人进入诊室就诊。
要求程序采用菜单的方式,其选项及功能如下:
(1)排队——输入病人的病历号,加入到病人排队队列中。
(2)就诊——病人排队队列中最前面的病人就诊,并将其从队列中删除。
(3)查看排队——从队首到队尾列出所有的排队病人的病历号。
(4)下班——退出运行。
2实验分析
定义行医类Hospitalize,
包括数据成员:
queue
辅助函数:
voidstandinaline();//操作结果:
输入病人的病历号,加入到病人排队队列中;
Voidcure();//操作结果:
病人排队队列中最前面的病人就诊,并将其从队列中删除;
Voiddisplay();//操作结果:
从队首到队尾列出所有的排队病人的病历号;
方法:
voidwork();//操作结果:
医生行医工作;
3实验步骤
(1)建立工程hospitalize。
(2)将软件包中的utility.h复制到hospitalize文件夹中,并将utility.h加入到工程中。
(3)将链队列需要的头文件queue.h复制到hospitalize文件夹中,并将其加入到工程中。
(4)建立头文件hospitalize.h,声明并实现行医类Hospitalize。
(5)建立源文件main.cpp,实现main()函数
【测试与结论】
【思考与感悟】
【源代码说明】
实验三文本串的加密
姓名:
座号:
级专业
实验地点:
指导老师日期:
【实验课程名称】数据结构
【实验项目名称】文本串的加密
【实验目的】
1掌握字符串类的基本操作;
2理解如何根据具体应用选择适当的数据结构解决问题;
【实验仪器及环境】计算机,windowxp操作系统,VC++6.0
【实验内容及步骤】
1目标与要求
一个文本串可用事先给的字母映射表进行加密;
未被映射的字符不加以改变,要求采用菜单的方式实现相应的功能:
(1)加密——将输入的文本串进行加密后输出;
(2)解密——将输入的已加密的文本进行解密后输出;
(3)退出——退出运行;
2实验分析
定义加密类encrypt,
包括数据成员:
astringletters;大小写字母表
astringmap;字母映射表
辅助函数:
astringencode(astringstr);//操作结果:
返回文本串进行加密后的文本串
astringdecode(astringstr);//操作结果:
返回文本串加密后的文本串
3实验步骤
(1)建立工程encrypt。
(2)将软件包中的utility.h复制到encrypt文件夹中,并将utility.h加入到工程中。
(3)将链队列需要的头文件astring.h,lk_list.h,node.h复制到encrypt文件夹中,并将其加入到工程中。
(4)建立头文件encrypt.h,声明并实现加密类encrypt。
(5)建立源文件main.cpp,实现main()函数
【测试与结论】
【思考与感悟】
【源代码说明】
实验四用二叉树表示表达式
姓名:
座号:
级专业
实验地点:
指导老师日期:
【实验课程名称】数据结构
【实验项目名称】用二叉树表示表达式
【实验目的】
1掌握二叉树的存储结构定义;
2掌握二叉树基本操作;
3学会用二叉树表示算术表达式
【实验仪器及环境】计算机,windowxp操作系统,VC++6.0
【实验内容及步骤】
1目标要求
编写一个程序,用二叉树表示算术表达式,表达式只包含=,+,-,*,/,(,)和用字母表示的操作数且没有错误,如(a+b)*c-e/f
2实验分析
定义二叉树表示类figureexprbybitree
包括辅助函数:
staticboolisoperator(charch);//判断ch是否为运算符
staticintleftpri(charop);//左边运算符的优先级
staticintrightpri(charop);//右边运算符的优先级
方法:
staticvoidrun();//将从键盘输入的中缀表达式用二叉树表示
定义函数优先级:
操作符ch=(*,/+,-)
Leftpri(ch)01536
Rightpri(ch)06421
3.实验步骤
(1)建立工程figure_expr_by_bitree。
(2)将软件包中的utility.h复制到figure_expr_by_bitree文件夹中,并将utility.h加入到工程中。
(3)将链栈与二叉树需要的头文件node.h,linkedstack.h,binarytree.h,bintreenode.h,queue.h复制到figure_expr_by_bitree文件夹中,并将其加入到工程中。
(4)建立头文件figureexprbybitree.h,声明并实现加密类figureexprbybitree。
(5)建立源文件main.cpp,实现main()函数
【测试与结论】
【思考与感悟】
【源代码说明】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构C+ 数据结构 实验 指导书