Ngăn xếp (Stack) trong Java

Học sinh phấn khởi học lập trình

Ngăn xếp (Stack) là một cấu trúc dữ liệu rất quan trọng trong lập trình, đặc biệt là trong Java. Nó cho phép chúng ta thực hiện các thao tác thêm, xóa và truy xuất phần tử một cách hiệu quả.

Trong Java, chúng ta có thể sử dụng lớp Stack trong gói java.util để tạo một đối tượng ngăn xếp. Các phương thức quan trọng của lớp Stack bao gồm:

  • push(): Thêm một phần tử vào đỉnh của ngăn xếp.
  • pop(): Xóa và trả về phần tử ở đỉnh của ngăn xếp.
  • peek(): Truy xuất và trả về phần tử ở đỉnh của ngăn xếp mà không xóa nó.
  • empty(): Kiểm tra xem ngăn xếp có rỗng hay không.
  • search(): Tìm kiếm một phần tử trong ngăn xếp và trả về vị trí của nó tính từ đỉnh của ngăn xếp.

Ví dụ sau đây minh họa cách sử dụng lớp Stack trong Java:

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();

        stack.push(1);
        stack.push(2);
        stack.push(3);

        System.out.println("Phần tử ở đỉnh của ngăn xếp: " + stack.peek());

        while (!stack.empty()) {
            System.out.println(stack.pop());
        }
    }
}

Đoạn mã trên tạo ra một đối tượng ngăn xếp và thêm ba phần tử vào đó. Sau đó, nó truy xuất và in ra phần tử ở đỉnh của ngăn xếp bằng phương thức peek(). Cuối cùng, nó lặp qua các phần tử của ngăn xếp và in chúng ra màn hình bằng cách sử dụng phương thức pop().

Dưới đây là một ví dụ về cách sử dụng ngăn xếp trong Java:

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        // Khởi tạo một đối tượng ngăn xếp
        Stack<Integer> stack = new Stack<Integer>();

        // Thêm các phần tử vào ngăn xếp
        stack.push(1);
        stack.push(2);
        stack.push(3);

        // Truy xuất phần tử ở đỉnh của ngăn xếp
        int top = stack.peek();
        System.out.println("Phần tử ở đỉnh của ngăn xếp là: " + top);

        // Xóa phần tử ở đỉnh của ngăn xếp và in ra màn hình
        int pop = stack.pop();
        System.out.println("Phần tử bị xóa ở đỉnh của ngăn xếp là: " + pop);

        // In ra các phần tử còn lại trong ngăn xếp
        System.out.println("Các phần tử còn lại trong ngăn xếp là:");
        for (Integer element : stack) {
            System.out.println(element);
        }
    }
}

Đoạn mã trên tạo một đối tượng ngăn xếp và thêm ba phần tử vào đó. Sau đó, nó truy xuất và in ra phần tử ở đỉnh của ngăn xếp bằng phương thức peek(). Nó cũng xóa phần tử ở đỉnh của ngăn xếp bằng phương thức pop() và in ra giá trị của phần tử bị xóa. Cuối cùng, nó lặp qua các phần tử còn lại của ngăn xếp và in chúng ra màn hình bằng cách sử dụng một vòng lặp for-each.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *