实验内容(栈和队列)

上传人:油条 文档编号:1270347 上传时间:2017-06-04 格式:PPT 页数:11 大小:112KB
返回 下载 相关 举报
实验内容(栈和队列)_第1页
第1页 / 共11页
实验内容(栈和队列)_第2页
第2页 / 共11页
实验内容(栈和队列)_第3页
第3页 / 共11页
实验内容(栈和队列)_第4页
第4页 / 共11页
实验内容(栈和队列)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《实验内容(栈和队列)》由会员分享,可在线阅读,更多相关《实验内容(栈和队列)(11页珍藏版)》请在金锄头文库上搜索。

1、数据结构实验内容 栈和队列,栈和队列 魔王语言解释,一、问题描述:有一个魔王总是使用自己的一种非常精练而抽象的语言讲话,没有人能听得懂,但他的语言是可以逐步解释成人能听懂的语言,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的;,12m(12n)nn-11,在这两种形式中,从左到右均表示解释。试写一个魔王语言的解释系统,把他的话解释成人能听得懂得话。,栈和队列 魔王语言解释,基本要求:用下述具体规则和上述规则形式2实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换得变量。魔王语言可含人的词汇。,BtAdAAsae,测试数据:B(ei

2、nxgz)B解释成tsaedsaeezegexeneietsaedsae;若将小写字母与汉字建立下表对应关系,则魔王说的话是:“天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅”。,栈和队列 魔王语言解释,实验提示:将魔王的语言自右至左进栈,总是处理栈顶字符。若是开括号,则逐一出栈,将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入栈。其他情形较简单,请思考应如何处理。应首先实现栈和队列的基本操作。,由于问题的特殊性,可以实现栈和队列的顺序存储空间共享代换变量的数目不限,则在程序开始运行时首先读入一组第一种形式的规则,而不是把规则固定在程序中(第二种形式的规则只能

3、固定在程序中),选作内容:,栈和队列 马踏棋盘,二、问题描述:设计一个国际象棋的马踏遍棋盘的演示程序。,基本要求:将马随机放在国际象棋8x8棋盘Board88的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,64依次填入一个8x8的方阵,输出之。,测试数据:由自己制订。可自行指定一个马的初始位置(i,j),0=i,j=7。,栈和队列 马踏棋盘,实现提示:下图显示了马位于方格(2,3)时,8个可能的移动位置。一般来说,当马位于位置(i,j)时,可以走到下列8个位置之一。,( i-2,j+1),

4、 ( i-1,j+2), ( i+1,j+2), ( i+2,j+1)( i+2,j-1), ( i+1,j-2), ( i-1,j-2), ( i-2,j-1),0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,栈和队列 马踏棋盘,但是,如果( i,j)靠近棋盘的边缘,上述有些位置可能超出棋盘范围,成为不允许的位置。8个可能位置可以用两个一维数组HTry10.7和HTry20.7来表示:,0 1 2 3 4 5 6 7,HTry1,0 1 2 3 4 5 6 7,HTry2,位于( i,j)的马可以走到的新位置是在棋盘范围内的(i+HTry1h ,j+HTry2h),其中h=0

5、,1,7。,每次在多个可走位置中选择其中一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。,求出从某一起点出发的多条以至全部行走路线。探讨每次选择位置的“最佳策略”,以减少回溯的次数。演示寻找行走路线的回溯过程。,选作内容:,栈和队列 马踏棋盘,栈和队列 迷宫问题,三、问题描述:以一个mn的方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得到没有通路的结论。,基本要求:首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序;求得的通路以三元组(i,j,d)的形式输出,

6、其中: (i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如:对于下列数据的迷宫,输出的一条通路为:(1,1,1), (1,2,2), (2,2,2), (3,2,3), (3,1,2),. 。,栈和队列 迷宫问题,测试数据:迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。,1 2 3 4 5 6 7 8,栈和队列 迷宫问题,实现提示:计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前走;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索而未能到达出口,则所设定的迷宫没有通路。可以用二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(m,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。,编写递归形式的算法,求得迷宫中所有可能的通路;,选作内容:,以方阵形式输出迷宫及其通路。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号