NỘI DUNG BÀI VIẾT
Mục đích
Triển khai stack sử dụng mảng
Mô tả
Thực thi lớp MyStack sử dụng mảng và StackClient theo sơ đồ lớp sau:
Lớp MyStack bao gồm các thành phần sau:
Thuộc tính
– size có kiểu số nguyên, lưu số phần tử trong stack
– arr có kiểu mảng số nguyên, lưu danh sách các phần tử trong stack
– index có kiểu số nguyên, mặc định gán giá trị 0, xác định vị trí của từng phần tử trong stack
Phương thức khởi tạo:
MyStack(int): khởi tạo số phần tử trong stack
Phương thức
- push(): chèn phần tử mới vào stack
- pop(): xoá phần tử khỏi stack
- size(): trả về số phần tử hiện tại của stack
- isEmpty(): kiểm tra xem stack có rỗng không
- isFull(): kiểm tra xêm stack có đầy không
Lớp StackClient chứa phương thức main() để thực thi ứng dụng.
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 MyStack với các thuộc tính:
public class MyStack { private int arr[]; private int size; private int index = 0; public MyStack(int size) { this.size = size; arr = new int[size]; } }
Bước 2: Cài đặt phương thức push()
public void push(int element){ if (isFull()) { throw new StackOverflowError("Stack is full"); } arr[index] = element; index++; }
Bước 3: Cài đặt phương thức pop()
public int pop() throws Exception { if (isEmpty()) { throw new Exception("Stack is null"); } return arr[--index]; }
Bước 4: Cài đặt phương thức size()
public int size() { return index; }
Bước 5: Cài đặt phương thức isEmpty()
public boolean isEmpty() { if (index == 0) { return true; } return false; }
Bước 6: Cài đặt phương thức isFull()
public boolean isFull() { if (index == size) { return true; } return false; }
Bước 7: Cài đặt lớp StackClient chứa phương thức main để thực thi ứng dụng
public class StackClient { public static void main(String[] as) throws Exception { MyStack stack = new MyStack(5); stack.push(5); stack.push(4); stack.push(3); stack.push(2); stack.push(1); System.out.println("1. Size of stack after push operations: " + stack.size()); System.out.printf("2. Pop elements from stack : "); while (!stack.isEmpty()) { System.out.printf(" %d", stack.pop()); } System.out.println("\n3. Size of stack after pop operations : " + stack.size()); } }
Bước 8: Chạy chương trình. Quan sát kết quả trả về. Thêm mã lệnh để kiểm tra xem stack đã đầy hay chưa.