[Thực hành] Triển khai Queue sử dụng mảng

DSA: Stack, Queue

Mục đích

Triển khai queue sử dụng mảng

Mô tả

Cài đặt lớp MyQueue như mô tả trong sơ đồ sau:

Phương thức enqueue để thêm một đối tượng vào queue và dequeue để xoá một đối tượng khỏi queue.

Xây dựng lớp QueueClient chứa phương thức main() để sử dụng lớp MyQueue.

Hướng dẫn nộp bài:

  • Up mã nguồn lên github
  • Paste link github vào phần nộp bài

Hướng dẫn

Bước 1: Tạo lớp MyQueue với các thuộc tính:

public class MyQueue {    private int capacity;    private int queueArr[];    private int head = 0;    private int tail = -1;    private int currentSize = 0;    public MyQueue(int queueSize) {        this.capacity = queueSize;        queueArr = new int[this.capacity];    }}

Bước 2: Cài đặt phương thức isQueueFull ()

public boolean isQueueFull(){     boolean status = false;     if (currentSize == capacity){         status = true;     }     return status; }

Bước 3: Cài đặt phương thức isQueueEmpty()

public boolean isQueueEmpty(){     boolean status = false;     if (currentSize == 0){         status = true;     }     return status; }

Bước 4: Cài đặt phương thức enqueue ()

public void enqueue(int item) {    if (isQueueFull()) {        System.out.println("Overflow ! Unable to add element: " + item);    } else {        tail++;        if (tail == capacity - 1) {            tail = 0;        }        queueArr[tail] = item;        currentSize++;        System.out.println("Element " + item + " is pushed to Queue !");    }}
Bước 5: Cài đặt phương thức dequeue ()
public void dequeue() {    if (isQueueEmpty()) {        System.out.println("Underflow ! Unable to remove element from Queue");    } else {        head++;        if (head == capacity - 1) {            System.out.println("Pop operation done ! removed: " + queueArr[head - 1]);            head = 0;        } else {            System.out.println("Pop operation done ! removed: " + queueArr[head - 1]);        }        currentSize--;    }}

Bước 6: Cài đặt lớp QueueClient chứa phương thức main để thực thi ứng dụng

public static void main(String[] args) {     MyQueue queue = new MyQueue(4);     queue.enqueue(4);     queue.dequeue();     queue.enqueue(56);     queue.enqueue(2);     queue.enqueue(67);     queue.dequeue();     queue.dequeue();     queue.enqueue(24);     queue.dequeue();     queue.enqueue(98);     queue.enqueue(45);     queue.enqueue(23);     queue.enqueue(435); }

Bước 7: Chạy chương trình. Quan sát kết quả trả về. 


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *