栈和队列的原理以及应⽤场景
栈和队列是⼀个⽐较抽象的概念,⼤多数⼈知道栈和队列的特点,但是实际不知道怎么⽤,这是⼤家学习阶段的通病。
要想⽤栈和队列,⾸先要明确,他们是什么。
1.是什么?
栈和队列其实是⼀个⼯具,他们传统的⼯具⽅法 ⼯具类不同,他们是“思想”⼯具,⼤家都知道,栈是后进先出,队列是先进先出。但是实际怎么⽤却不知道。
2.怎么⽤?
栈和队列是很好的⼯具,他们的应⽤我们平时开发可能⽤到得少,但是在实际中,他们的应⽤⾮常多。
栈:栈先进先出的特点,可以很好的控制访问控制,栈的数据访问是有很严格的,只能访问最后加⼊的数据,这对数据访问控制严格的应⽤很有好处。现实中,字符串倒序输出,使⽤栈的原理就可以很好的实现。⽰例代码:
public String goRever(String inputStr){
int size = inputStr.length();
StackS stackS = new StackS(size);
int i = 0;
普拉提是什么运动while(!stackS.isFull()){腹胀腹泻
stackS.push(inputStr.charAt(i));
选择的悖论i++;
一件新鲜事
}
StringBuffer stringBuffer = new StringBuffer();
休市时间
while(!stackS.isEmpty()){
stringBuffer.append(stackS.pop());
}
核算员
outputStr = String();
psvita破解return outputStr;
}
除此之外,我们熟悉的编译器变异机制中也有栈的原理,例如特殊标点符号匹配,例如“{”、“}”、“(”、“)”等成对的符号。
队列:队列可以模拟很多现实的⽣产环境,例如排队,队列是先进先出,不允许有任何元素插队,这对于解决现实⽣产问题有很⼤帮助。
深圳海洋世界优点:栈和队列的操作的时间复杂度都是O(1),效率⾮常⾼。