为什么以及何时应该使用堆栈或队列数据结构而不是数组/列表?你能否请一个例子说明一个状态,如果你使用堆栈或队列会更好?
在ArrayList上使用Queue的一个基本参数是Queue保证FIFO行为.
但是如果我向ArrayList添加10个元素然后从第0个元素开始迭代元素,那么我将按照添加它们的顺序检索元素.基本上,这保证了FIFO行为.
与传统的ArrayList相比,Queue有什么特别之处?
我试图创建一个程序,将一个字符串作为参数进入其构造函数.我需要一个方法来检查字符串是否是一个平衡的括号表达式.它需要处理({[]})每个open需要与其相应的右括号进行平衡.例如,用户可以输入[({})],这将是平衡的,而{}将是不平衡的.这不需要处理字母或数字.我需要使用堆栈来执行此操作.
我得到了这个伪代码,但无法想象如何在java中实现它.任何建议都会很棒.
更新 - 抱歉忘了发布我到目前为止的内容.这一切搞砸了,因为起初我试图使用char然后我尝试了一个数组..我不确定去哪里.
import java.util.*;
public class Expression
{
Scanner in = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();
public boolean check()
{
System.out.println("Please enter your expression.");
String newExp = in.next();
String[] exp = new String[newExp];
for (int i = 0; i < size; i++)
{
char ch = exp.charAt(i);
if (ch == '(' || ch == '[' || ch == '{')
stack.push(i);
else if (ch == ')'|| ch == ']' || ch == '}')
{
//nothing to …Run Code Online (Sandbox Code Playgroud)