ساختمان داده صف Queue در جاوا

صف یا Queue یک حافظه ی First In – First Out است. یعنی داده ای که زودتر در این حافظه قرار می‌گیرد، زودتر از همه هم از حافظه خارج می‌شود.
معمولا برای صف متدهای زیر تعریف می‌شود:
متد insert: یک داده به انتهای صف اضافه می‌کند.
متد delete: داده ی ابتدای صف را برمی‌گرداند و سپس از صف خارج می‌کند.
متد peek: داده ی ابتدای صف را برمی‌گرداند ولی آن را از صف خارج نمی‌کند.
متد isEmpty: در صورتی که صف خالی باشد مقدار true را برمی‌گرداند.
متد isFull: در صورتی که ظرفیت حافظه ی صف پر شده باشد مقدار true را برمی‌گرداند.
متد size: تعداد اعضای منتظر در صف را برمی‌گرداند.
متد maxSize: ظرفیت صف را برمی‌گرداند.

Queue.java

/*Queue
 22 Nov 2015
 06 Dec 2015
 Java Language
 By: Sina Moradi
 http://Samiantec.ir*/

public class Queue {
	
	private int data[];
	private int front=0;
	private int rear=0;

	public Queue() {
		data = new int[100];
	}

	public Queue(int n) {
		data = new int[n];
	}

	public void insert(int x) {
		if (isFull()) {
			System.out.println("Error");
			System.exit(0);
		}
		data[rear] = x;
		rear = (rear + 1) % data.length;
	}

	public int delete() {
		if (isEmpty()) {
			System.out.println("Error");
			System.exit(0);
		}
		int temp=data[front];
		front = (front + 1) % data.length;
		return temp;	
	}

	public int peek() {
		if (isEmpty()) {
			System.out.println("Error");
			System.exit(0);
		}
		int temp=data[front];
		return temp;	
	}

	public int size() {
		if (rear >= front)
			return rear - front;
		return data.length - (front - rear);
	}

	public boolean isEmpty() {
		return rear == front;
	}

	public boolean isFull() {
		return size() == data.length - 1;
	}

}

Test.java

/*Queue
 22 Nov 2015
 06 Dec 2015
 Java Language
 By: Sina Moradi
 http://Samiantec.ir*/

import java.util.*;

public class Test {

	public static void main(String[] args) {
		Queue a=new Queue(5);
		a.insert(1);
		a.insert(2);
		a.insert(3);
		a.insert(4);
		a.delete();
		a.insert(5);
		//Now we print all queue items
		while (!a.isEmpty()) {
			System.out.println(a.delete());
		}
	}

}

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

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

12 − نه =