您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何理解java數據結構的棧,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
棧是先進后出的一個數據結構,就跟子彈夾一樣。我當時聽到棧時:以為棧是java的底層。后來才知道不是,它只是一個概念,你可以通過任何你想到的方式去實現這個先進后出的概念。棧的底層是用數組實現的,下面的例子,大概模擬了java的實現方式。arraylist集合的底層同樣也是用數組實現的。
public class MyStack {
int[] elements;
public MyStack() {
elements = new int[0];
}
//添加元素其實就是在數組中加入元素而已,重點是取值
public void push(int ele) {
//數組長度加1,你可以按照倍數進行擴容,java中好像是按照1倍進行擴容的
int[] newArr = new int[elements.length+1];
//把原數組中的元素復制到新的數組中
for(int i=0;i<elements.length;i++) {
newArr[i] = elements[i];
}
//將新元素加入到最后
newArr[elements.length]=ele;
//替換為新數組
elements = newArr;
}
//取值,棧是先進后出,所以先去最后放入的元素,對數組來說,就是下標最大的那個數
public int pop() {
//取出數組的最后一個元素
int ele = elements[elements.length-1];
//創建新的數組
int[] newArr = new int[elements.length-1];
//把原數組中的元素復制到新的數組中
for(int i=0;i<elements.length-1;i++) {
newArr[i] = elements[i];
}
//替換為新數組
elements = newArr;
return ele;
}
}
上述就是小編為大家分享的如何理解java數據結構的棧了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。