(规格为A4纸或A3纸折叠)
注:1、实验报告的内容: 一、实验目的;二、实验原理;三、实验步骤;四、实验结果;五、讨论分析 (完成指定的思考题和作业题);六、改进实验建议。
2、各专业可在满足学校对实验教学基本要求的前提下,根据专业特点自行设计实验报告的格式,所设 计的实验报告在使用前需交实践教学管理科备案。
…… …… 余下全文
实验二 栈和队列实现四则运算
实验二 栈和队列实现四则运算
一、实验目的及要求:
1、掌握栈和队列的基本操作:建立、插入、删除、查找、合并
2、掌握用栈和队列的储存 3、熟悉C语言上机编程环境 4、掌握编译、调试程序的方法
二、实验内容:
采用栈进行表达式的求值,表达式求值是程序设计语言编译中的一个最基本问题。它的实现是栈应用的又一个典型例子,本报告使用的是“算符优先法”求表达式的值。
要把一个表达式翻译成正确求值的一个机器指令序列,或者直接对表达式求值,首先要能够正确解释表达式。若要正确翻译则首先要了解算术四则运算的规则。即:
(1)、先乘除,后加减; (2)、从左算到右; (3)、先括号内后括号外。
任何一个表达式都是由操作数、运算符和界限符组成的,我们称它们为单词。一般地,操作数既可以是常数也可以是被说明为变量或常量的标识符;运算符可以分为算术运算符、关系运算符和逻辑运算符3类;基本界限符有左右括号和表达式结束符等。为了叙述的简洁,我们仅讨论简单算术表达式的求值问题。这种表达式只包含加、减、乘、除4种运算符。
我们把运算符和界限符统称为算符,它们构成的集合命名为OP。根据上述3条运算规则,在运算的每一步中,任意两个相继出现的算符系之一:
…… …… 余下全文
2007级数据结构实验报告
实验名称: 实验二 栈和队列
日 期: 20xx年11月15日
1.实验要求
实验目的
通过选择下面五个题目之一进行实现,掌握如下内容:
进一步掌握指针、模板类、异常处理的使用
掌握栈的操作的实现方法
掌握队列的操作的实现方法
学习使用栈解决实际问题的能力
学习使用队列解决实际问题的能力
实验内容
2.1题目1
根据栈和队列的抽象数据类型的定义,按要求实现一个栈或一个队列。 要求:
1、 实现一个共享栈
2、 实现一个链栈
3、 实现一个循环队列
4、 实现一个链队列
编写测试main()函数测试线性表的正确性。
2. 程序分析
2.1 存储结构
存储结构:
特殊线性表:栈,队列
第1页
栈顶
栈底
链栈
2.2 关键算法分析
共享栈的入栈算法伪码(Push):
1.如果栈满,抛出上溢异常。
2.判断是插在栈1还是栈2:
2.1如果在栈1插入,则栈顶指针top1加1,在top1处填入元素x;
2.2如果在栈2插入,则栈顶指针top2加1,在top2处填入元素x。
共享栈的出栈算法伪码(Pop):
…… …… 余下全文
栈 的 顺 序 表 示 和 实 现
一、实验目的
1. 了解栈和队列的特性。
2. 掌握栈的顺序表示和实现。
3. 掌握栈的链式表示和实现。
4. 掌握队列的顺序表示和实现。
5. 掌握队列的链式表示和实现。
6. 掌握栈和队列在实际问题中的应用。
二、实验要求
1. 认真阅读和掌握本实验的程序。
2. 上机运行本程序。
3. 保存和打印出程序的运行结果,并结合程序进行分析。
4. 按照对顺序表和单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。
三、实验内容
编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:
(1)初始化顺序栈。
(2)插入元素。
(3)删除栈顶元素。
(4)取栈顶元素。
(5)遍历顺序栈。
(6)置空顺序栈。
四,解题思路
五、程序清单
#include<stdio.h>
#include<stdlib.h>
#define MAXNUM 20
#define ElemType int
/*定义顺序栈的存储结构*/
…… …… 余下全文
一、实验目的和要求
(1)理解栈和队列的特征以及它们之间的差异,知道在何时使用那种数据结构。
(2)重点掌握在顺序栈上和链栈上实现栈的基本运算算法,注意栈满和栈空的条件。
(3)重点掌握在顺序队上和链队上实现队列的基本运算算法,注意循环队队列满和队空的条件。
(4)灵活运用栈和队列这两种数据结构解决一些综合应用问题。
二、实验环境和方法
实验方法:
(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。
(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。
(三)根据实验内容,编译程序。
实验环境:Windows xp Visual C++6.0
三、实验内容及过程描述
实验步骤:
① 进入Visual C++ 6.0集成环境。
② 输入自己编好的程序。
③ 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有
错,及时改正。
④ 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,
根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果
…… …… 余下全文
北京邮电大学电信工程学院
2008级数据结构实验报告
实验名称: 实验二 栈和队列 学生姓名: 班 级: 班内序号: 学 号:
日 期: 20xx年11月8日
1.实验要求
a. 实验目的
通过选择下面五个题目之一进行实现,掌握如下内容: ? 进一步掌握指针、模板类、异常处理的使用 ? 掌握栈的操作的实现方法 ? 掌握队列的操作的实现方法 ? 学习使用栈解决实际问题的能力 ? 学习使用队列解决实际问题的能力 b. 实验内容
利用栈结构实现迷宫求解问题。迷宫求解问题如下:
心理学家把一只老鼠从一个无顶盖的大盒子的入口赶进迷宫,迷宫中设置很多隔壁,对前进方向形成了多处障碍,心理学家在迷宫的唯一出口放置了一块奶
第1页
北京邮电大学电信工程学院
2. 程序分析
2.1 存储结构
存储结构:
队列顺序存储结构
示意图如下:
2.2 关键算法分析
核心算法思想:
1. 如果采用直接递归的方式,用栈很容易实现路径的输出,但是这条路径不一定是最短路
径。为了改进算法,达到输出最短路径的目标,采用队列的实现方式。
2. 为查找最短路径,使用了“图”中的算法:广度优先搜索。
…… …… 余下全文
实验二 堆栈和队列基本操作的编程实现
【实验目的】
堆栈和队列基本操作的编程实现
要求:
堆栈和队列基本操作的编程实现(2学时,验证型),掌握堆栈和队列的建立、进栈、出栈、进队、出队等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。
【实验性质】
验证性实验(学时数:2H)
【实验内容】
内容:
把堆栈和队列的顺序存储(环队)和链表存储的数据进队、出队等运算其中一部分进行程序实现。可以实验一的结果自己实现数据输入、数据显示的函数。
利用基本功能实现各类应用,如括号匹配、回文判断、事物排队模拟、数据逆序生成、多进制转换等。
【实验分析、说明过程】
【思考问题】
【实验小结】 (总结本次实验的重难点及心得、体会、收获)
【附录-实验代码】
…… …… 余下全文