php 栈实现历史记录后退,栈:如何实现浏览器的前进和后退功能
受限制的線性表
先進后出
實現(xiàn)一個棧
數(shù)組實現(xiàn)叫順序棧
public class ArrayStack {
private String[] items;//存儲數(shù)據(jù)的數(shù)組
private int count;//棧中的元素
private int n;//棧的大小
public ArrayStack(int n){
this.items = new String[n];
this.n = n;
this.count = 0;
}
//入棧操作
public boolean push(String item){
//如果棧滿了返回false,入棧失敗
if (count == n){
return false;
}
//將item放到下標為count的位置,count +1
items[count] = item;
//棧中元素+1
count++;
return true;
}
//出棧操作
public String pop(){
//如果棧為空返回null
if (count == 0){
return null;
}
//返回下標第n-1個元素
String temp = items[count - 1];
//元素總數(shù)減1
count--;
return temp;
}
}
支持動態(tài)擴容的順序棧
分析時間復雜度
對于出棧來說時間復雜度還是O(1)
對于入棧來說如果棧空間足夠時間復雜度為O(1),如果棧空間不夠用需要擴容那么時間復雜度為O(n)
鏈表實現(xiàn)叫鏈式棧
性能分析
不論是順序棧還是鏈棧時間復雜度和空間復雜度都是O(1)
現(xiàn)實應用
函數(shù)調(diào)用棧
棧幀
表達式求值
兩個棧實現(xiàn)
括號是否匹配
總結(jié)
以上是生活随笔為你收集整理的php 栈实现历史记录后退,栈:如何实现浏览器的前进和后退功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Latex的表格注释
- 下一篇: ios 点击出现另外一套tabbar_I