push()- 在堆栈上推送(存储)一个元素。 pop()- 从堆栈中删除(访问)一个元素。 当数据被推入堆栈时。 要有效地使用堆栈,我们还需要检查堆栈的状态。出于同样的目的,将以下功能添加到堆栈中 - peek()- 获取堆栈的顶部数据元素,而不删除它。 isFull()- 检查堆栈是否已满。 isEmpty()- 检查堆栈是否为空。 在
于是,冷静下来重新思考,突然灵光一现,可以利用堆栈类来处理啊,碰到正括号就压入栈顶,碰到反括号就判断栈顶是不是相同类型的正括号,是就移除栈顶元素,最后判断栈是否为空,为空则返货valid,否则返回invalid。 于是开始写代码,调试,结果却悲剧了,提示错误,重新review代码,无果。查看错误信息peek是unknown source,初步...
(1)简单的:min stack,一个数组实现三个stack (2)经典的stack问题:经典汉诺塔问题,逆波兰式计算或者产生逆波兰式,简化文件路径,验证括号对是否合法,找出最长有效括号(贪心+stack求解) (3)涉及tree的遍历问题:tree中序遍历的迭代解法,二叉搜索树的两节点和(two sum思路) (4)***stack排序问题***:为stack排序,从...
stack的实现:链表,数组 题目: (1)简单的:min stack,一个数组实现三个stack (2)经典的stack问题:经典汉诺塔问题,逆波兰式计算或者产生逆波兰式,简化文件路径,验证括号对是否合法,找出最长有效括号(贪心+stack求解) (3)涉及tree的遍历问题:tree中序遍历的迭代解法,二叉搜索树的两节点和(two sum思路) (4)***sta...
程序= 数据结构 + 算法 2. 对于一个数据结构来讲,需要做到增删减查四个基本功能。 堆栈 堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 堆栈就像一个圆柱体的硬币盒(只开一边口),每次只能从顶部操作,后进先出,每次只能取得最顶部的一枚硬币...