栈的应用
zhao_miao
冲鸭
展开
-
求简单迷宫的路径
简单迷宫设置一个简单迷宫。(6*6) 定义迷宫入口。 迷宫入口要求:必须是边界。 3.开始走迷宫 a. 走当前步: 当前步入栈,将当前步标记为2 b. 判断当前栈顶元素是否是出口(是边界却不是入口),如果是就返回,若不是之星下一步。 c.取栈顶元素为当前步: d.走下一步: 假设优先顺序为上,左,右,下。 上:(横坐...原创 2018-08-26 21:54:38 · 445 阅读 · 0 评论 -
括号匹配问题(栈的应用)
栈: 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除等操作。 没有任何元素的栈称为空栈。 栈又称为 后进先出 的线性表。 括号匹配问题: 算法思路: 一个关于括号匹配的例子: 封装一个静态栈: #define Max 20#define DataType char typedef struct Stack{ DataType...原创 2018-08-17 18:10:34 · 890 阅读 · 0 评论 -
逆波兰表达式(后缀表达式)的计算
后缀表达式计算时,所有运算按照运算符出现的顺序,严格从左到右,每个操作符取前两个操作数进行运算,运算后的结果仍然作为下次的操作数。 那如果已知后缀表达式,如何求值: 举一个例子: 代码:#include<stdlib.h>#include<assert.h>#include<string.h>原创 2018-08-17 21:31:39 · 5854 阅读 · 3 评论 -
一个数组实现两个栈(共享栈)
题目: 一个数组实现两个栈。 方法1: 下标为0的位置为栈1的栈底,下标为1的位置为栈2的栈底,栈1的元素存放在下标为偶数的位置上,栈2的元素放在下标为奇数的位置上。 如上图所示的数组:若栈1有一个元素 2,栈2有6个元素 1,2,3,4,5,6,下标为0的位置为 2,下标为1,3,5,7,9的位置分别为1,2,3,4,5。6无法插入但数组中还有很多剩余的空间。。可见该方法会...原创 2018-08-23 20:10:52 · 11611 阅读 · 1 评论