ساختمان داده پشته Stack در جاوا

پشته یا 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());
	}

}

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *




Enter Captcha Here :