這期內容當中小編將會給大家?guī)碛嘘P如何理解java數(shù)據(jù)結構的棧,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
專注于為中小企業(yè)提供做網站、網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)廣州免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。
棧是先進后出的一個數(shù)據(jù)結構,就跟子彈夾一樣。我當時聽到棧時:以為棧是java的底層。后來才知道不是,它只是一個概念,你可以通過任何你想到的方式去實現(xiàn)這個先進后出的概念。棧的底層是用數(shù)組實現(xiàn)的,下面的例子,大概模擬了java的實現(xiàn)方式。arraylist集合的底層同樣也是用數(shù)組實現(xiàn)的。
public class MyStack {
int[] elements;
public MyStack() {
elements = new int[0];
}
//添加元素其實就是在數(shù)組中加入元素而已,重點是取值
public void push(int ele) {
//數(shù)組長度加1,你可以按照倍數(shù)進行擴容,java中好像是按照1倍進行擴容的
int[] newArr = new int[elements.length+1];
//把原數(shù)組中的元素復制到新的數(shù)組中
for(int i=0;i
}
//將新元素加入到最后
newArr[elements.length]=ele;
//替換為新數(shù)組
elements = newArr;
}
//取值,棧是先進后出,所以先去最后放入的元素,對數(shù)組來說,就是下標最大的那個數(shù)
public int pop() {
//取出數(shù)組的最后一個元素
int ele = elements[elements.length-1];
//創(chuàng)建新的數(shù)組
int[] newArr = new int[elements.length-1];
//把原數(shù)組中的元素復制到新的數(shù)組中
for(int i=0;i
}
//替換為新數(shù)組
elements = newArr;
return ele;
}
}
上述就是小編為大家分享的如何理解java數(shù)據(jù)結構的棧了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。