今天我在這裡給大家分享如何利用java動态數組實作棧,動态數組類我已經在上一篇文章中分享了,具體請通路java實作動态數組。
首先我們需要建立一個Stack的接口:定義幾個基本的棧方法。在編寫代碼的過程中遵循先進後出的原則,以實作基本功能!!!
Stack:
package com.zp;
/**
* 定義棧的接口
* @author zhaopeng
* @create 2019-12-23 22:36
*/
public interface Stack<E>{
//擷取資料個數
int getSize();
//判斷是否為空
boolean isEmpty();
//入棧
void push(E e);
//出棧
E pop();
//檢視棧頂元素的值
E peek();
}
具體的實作類如下:
ArrayStack:
package com.zp;
/**
* 利用動态數組實作棧
* @author zhaopeng
* @create 2019-12-23 22:38
*/
public class ArrayStack<E> implements Stack<E> {
Array<E> array;
public ArrayStack(int capacity){
array=new Array<E>(capacity);
}
public ArrayStack(){
array=new Array<E>();
}
public int getCapacity(){
return array.getCapacity();
}
@Override
public int getSize() {
return array.getSize();
}
@Override
public boolean isEmpty() {
return array.isEmpty();
}
@Override
public void push(E e) {
array.addLast(e);
}
@Override
public E pop() {
return array.removeLast();
}
@Override
public E peek() {
return array.getLast();
}
@Override
public String toString() {
StringBuilder stringBuilder=new StringBuilder();
stringBuilder.append("stack:[");
for (int i = 0; i <array.getSize() ; i++) {
stringBuilder.append(array.get(i));
if(i!=array.getSize()-1){
stringBuilder.append(",");
}
}
stringBuilder.append("]top");
return stringBuilder.toString();
}
}
文章到此結束,測試代碼大家可自行書寫,謝謝大家的閱讀。如果有什麼問題,歡迎大家評論區留言哦!!!