“数据结构”课程设计-指导书 2011-6-2 选题一:迷宫与栈问题 【问题描述】 以一个 mXn的长方阵表示迷宫,0 和 1 分别表示迷宫中的通路和障碍
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论
【任务要求】 1) 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序
求得的通路以三元组(i,j,d)的形式输出
其中:(i,j)指示迷宫中的一个坐标,d 表示走到下一坐标的方向
如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…
2) 编写递归形式的算法,求得迷宫中所有可能的通路
3) 以方阵形式输出迷宫及其通路
【测试数据】 迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口
87654321001234567899入口出口008765432101111111110100000001011010001201001011130101100014000001001501100100160100001117000000001811111111911111111119入口出口 “数据结构”课程设计-指导书 2011-6-2 选题二:算术表达式与二叉树 【问题描述】 一个表达式和一棵二叉树之间,存在着自然的对应关系
写一个程序,实现基于二叉树表示的算术表达式的操作
【任务要求】 假设算术表达式 Expression 内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))
实现以下操作: 1) ReadExpre(E)— 以字符序列的形式输入语法正确的前缀表达式并构造表达式 E
2) WriteExpre(E)— 用带括弧的中缀表达式输出表达式 E
3) Assign(V,c)— 实现对变量 V