پشته یا Stack یک حافظه ی First in – Last out است. یعنی داده ای که زودتر در این حافظه قرار میگیرد، دیرتر از همه هم از حافظه خارج میشود.
معمولا برای پشته متدهای زیر تعریف میشود:
متد push: یک داده به انتهای پشته اضافه میکند.
متد pop: آخرین داده در پشته را برمیگرداند و سپس از پشته حذف میکند.
متد peek: آخرین داده در پشته را برمیگرداند ولی آن را از پشته حذف نمیکند.
متد isEmpty: در صورتی که پشته خالی باشد مقدار true را برمیگرداند.
متد isFull: در صورتی که ظرفیت حافظه ی پشته پر شده باشد مقدار true را برمیگرداند.
متد getMaxSize: حداکثر اندازهی پشته را برمیگرداند.
متد getSize: تعداد اعضای پر در پشته را برمیگرداند.
Stack.java
/*Stack 06 Dec 2015 Java Language By: Sina Moradi http://Samiantec.ir */ public class Stack { private int[] data; private int top; public Stack() { this(100); } public Stack(int size) { if (size < 1) { System.out.println("Error: Invalid size!"); System.exit(0); } data = new int[size]; top = -1; } public boolean isFull() { return top == data.length - 1; } public void push(int x) { if (isFull()) { System.out.println("Error: Stack is full!"); System.exit(0); } data[++top] = x; } public boolean isEmpty() { return top == -1; } public int pop() { if (isEmpty()) { System.out.println("Error: Stack is empty!"); System.exit(0); } return data[top--]; } public int peek() { if (isEmpty()) { System.out.println("Error: Stack is empty!"); System.exit(0); } return data[top]; } public int getMaxSize() { return data.length; } public int getSize() { return top+1; } public String toString() { String t=""; for (int i=0;i <= top;i++) t += data[i] + " "; return t; } }
Test.java
/*Test 06 Dec 2015 Java Language By: Sina Moradi http://Samiantec.ir */ public class Test { public static void main(String[] args) { Stack a=new Stack(); a.push(5); a.push(6); System.out.println(a.peek()); a.push(3); System.out.println(a.pop()); System.out.println(a.toString()); a.push(1); System.out.println(a.toString()); } }