总体实验要求
一、实验要求
1)熟悉C语言的编程环境,根据实验题目编写好源程序;
2)对上机操作过程中可能出现的问题预先分析,确定调试步骤和测试方法;
3)输入一定数量的测试数据,对运行结果进行分性;
4)上机实验完成后,认真写出实验报告,对上机中出现的问题进行分析、总结;
5)上机过程中要遵守实验室的各项规章制度,爱护实验设备,保持环境卫生;
6)本课程的实验过程中,不得进行游戏、上网等操作。
二、实验环境(工具、配置等)
1)硬件要求:计算机一台
2)软件要求:Windows操作系统,建议使用C语言,编译环境不限,如Dev-Cpp或VC++6.0或VS2010等。
3)数据结构与算法分析,实验实现的语言不限,建议使用C或者C++语言。
三、实验过程(实验方案、实验步骤、设计思路等)
1)实验方案:将编好的代码上机进行检验,看是否与预期一样。
2)实验步骤:在书上或网上到相关算法,进行修改,上机检验,纠错。
3)设计思路:先根据实验题目定义数据结构,并将所需函数实现,最后书写主函数中调用函数,检查结果是否正确?
实验一 顺序表的建立及应用
实验日期 | 2022年 月 日 | 得分 | |
一、实验目的
1)熟悉集成开发环境
2)深入了解线性表的顺序存储结构
3)在顺序存储结构上进行插入、删除等操作
4)利用顺序表解决实际应用问题
二、 实验题目
【实验题目1】通过线性表结构实现电话本模拟程序。编程实现顺序存储结构中的基本操作的实现(电话本的建立、插入、删除、修改、逆置、查、输出),并设计一个主菜单完成各个功能的调用。
注意:认真阅读和掌握本实验的参考程序,上机运行本程序, 保存程序的运行结果,并结合程序进行分析。
三、源程序
#include<stdio.h>
using namespace std;
四、实验结果(截图)
五、实验分析:
1.遇到的问题:
1)
2)
2.解决的方法:
1)
2)
3.收获:
4.实验体会及想对老师说的话
实验二 单链表的实现及其应用
实验日期 | 2022年 月 日 | 得分 | |
一、实验目的
1)深入了解单链表的存储结构。
2)熟练掌握在单链表存储结构上进行插入、删除等操作的算法。
3)通过单链表结构解决现实中的一些问题。
4)通过本次实习帮助学生加深对高级语言C语言的使用(特别是函数参数、指针类型、链表的使用)
二、 实验题目
【实验题目1】利用单链表实现电话本的模拟程序:定义单链表的数据类型,将头插法和尾插法、插入、删除、查、修改、计数、逆置、输出等操作都定义成子函数的形式,最后在
主函数中调用它,并将每一种操作前后的结果输出,以查看每一种操作的效果。
注意:认真阅读和掌握本实验的参考程序,上机运行本程序, 保存程序的运行结果,并结合程序进行分析。
三、源程序
#include<stdio.h>
using namespace std;
四、实验结果(截图)
五、实验分析:
1.遇到的问题:
1)
2)
二叉树的遍历及应用实验报告2.解决的方法:
1)
2)
3.收获:
4.实验体会及想对老师说的话
实验三 栈与循环队列
实验日期 | 2022年 月 日 | 得分 | |
一、实验目的
1)深入了解栈和队列的特性。
2)巩固对栈结构方法和循环队列结构方法的掌握。
3)接触较复杂问题算法设计。
二、 实验题目
【实验题目1】利用栈的基本操作实现个判断算术表达式中包含圆括号、方括号是否正确配对的程序。具体如下:
(1) 定义栈的顺序存取结构。
(2) 分别定义顺序栈的基本操作(初始化栈、判栈空否、入栈、出栈等)。
(3) 定义一个函数用来判断算术表达式中包含圆括号、方括号是否正确配对。其中,括号配对共有四种情况:左右括号配对次序不正确:右括号多于左括号:左括号多于右括号:左右括号匹配正确。
(4) 设计一个测试主函数进行测试。
【实验题目2】编程实现循环队列的各种基本操作实现。(初始化队列,判队列空、入队、出队),在主函数中调用实现队列的功能。
注意:认真阅读和掌握本实验的参考程序,上机运行本程序, 保存程序的运行结果,并结合程序进行分析。
三、源程序
#include<stdio.h>
using namespace std;
四、实验结果(截图)
五、实验分析:
1.遇到的问题:
2.解决的方法:
3.收获:
4.实验体会及想对老师说的话
实验四 串与数组
实验日期 | 2022年 月 日 | 得分 | |
一、实验目的
1)掌握串的相关概念
2)掌握串的存储结构及基本运算的实现
3)运用串的特点解决应用问题。
4)掌握数组的应用
5)掌握掌握稀疏矩阵的表示方法及其运算的实现
6)实现稀疏矩阵在三元组表示下的各运算并分析其效率
二、 实验题目
【实验题目1】利用串的堆分配顺序存储结构实现串的基本运算算法,并设计一个测试主函数进行测试:
1 串的赋值(将一个字符串常量赋值给一个串);
2 求串的实际长度;
3 两个串的比较:串1>串1,返回值大于0,串1==串2,返回值等于0,串1<串2,返回值小于0;
4 将串清为空串;
5 两个串的联接;返回长的新串
6 求子串:返回主串中第i个位置开始的m个字符;
7 求子串的位置:返回主串中子串第一次出现的位置序号。
8 删除串中第i个字符开始的j个字符。
【实验题目2】稀疏矩阵的三元组顺序表示方法及基本操作的实现(建立、输出、转置)并实现一个主菜单来实现。实现稀疏矩阵的三元组表示下的加、转置、乘的实现 。
三、源程序
#include<stdio.h>
using namespace std;
四、实验结果(截图)
五、实验分析:
1.遇到的问题:
2.解决的方法:
3.收获:
4.实验体会及想对老师说的话
实验五 二叉树及其应用
实验日期 | 2022年 月 日 | 得分 | |
一、实验目的
1)掌握二叉树的定义、性质及存储方式。
2)掌握二叉树的建立、遍历及其算法的实现
3)深入了解哈夫曼树,建立哈夫曼树。
4)哈夫曼树的应用:实现哈夫曼编码,并进行译码。
二、 实验题目
【实验题目1】采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序遍历的递归操作和中序的非递归操作,求出先序、中序和后序遍历序列,求所有叶子及结点总数。
【算法提示】设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针),如ABD###CE##F##,建立二叉树。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论