/ / Cách sử dụng ngăn xếp trong Java

Cách sử dụng ngăn xếp trong Java

server room 1

Lớp Java Stack mở rộng lớp Vector. Nó cho phép bạn tạo các phần tử mới, xem một phần tử trong ngăn xếp, cập nhật một phần tử trong ngăn xếp và xóa tất cả các phần tử khỏi ngăn xếp. Ngăn xếp xử lý dữ liệu theo thứ tự xuất trước (FILO). Điều này có nghĩa là bạn chỉ có thể thêm hoặc bớt các mục từ trên cùng của ngăn xếp.

Cấu trúc dữ liệu ngăn xếp có năm phương thức chính. Tuy nhiên, lớp Java Stack cũng có quyền truy cập vào hơn 40 phương thức khác mà nó kế thừa từ lớp Vector.


Tạo ngăn xếp trong Java

Lớp Stack có một hàm tạo duy nhất cho phép bạn tạo một ngăn xếp trống. Mỗi ngăn xếp có một đối số kiểu, đối số này quy định kiểu dữ liệu mà nó sẽ lưu trữ.

import java.util.Stack;

public class Main {
public static void main(String[] args) {
Stack<String> Customers = new Stack<String>();
}
}

Đoạn mã trên tạo một cấu trúc dữ liệu Stack được gọi là Khách hàng lưu trữ các giá trị Chuỗi.

Đang điền vào một ngăn xếp

Một trong năm phương thức chính của lớp Stack là đẩy() phương pháp. Nó lấy một mục duy nhất có cùng kiểu dữ liệu với Ngăn xếp và đẩy mục đó lên đầu Ngăn xếp.


Customers.push("Jane Doe");
Customers.push("John Doe");
Customers.push("Patrick Williams");
Customers.push("Paul Smith");
Customers.push("Erick Rowe");
Customers.push("Ella Jones");
Customers.push("Jessica Brown");

Đoạn mã trên điền vào Ngăn xếp của khách hàng với bảy mục. Nó đẩy từng mục mới lên đầu Ngăn xếp. Vì vậy, mặt hàng đứng đầu Bảng xếp hạng khách hàng là Jessica Brown. Và bạn có thể xác nhận điều này bằng cách sử dụng Ngăn xếp nhìn trộm () phương pháp. Các nhìn trộm () phương thức không có đối số. Nó trả về đối tượng ở trên cùng của Ngăn xếp mà không cần loại bỏ nó.


System.out.println(Customers.peek());

Đoạn mã trên trả về kết quả đầu ra sau cho bảng điều khiển:

Jessica Brown

Xem các mục trong một ngăn xếp

Cấu trúc dữ liệu ngăn xếp khá hạn chế về cách nó cho phép bạn tương tác với dữ liệu của nó. Bạn chủ yếu nên sử dụng Ngăn xếp thông qua mục trên cùng của nó. Tuy nhiên, bạn cũng có thể sử dụng các phương thức kế thừa từ lớp Vector để truy cập các phần tử tùy ý. Các phương thức như vậy bao gồm elementAt và removeElementAt.

Cách dễ nhất để có được cái nhìn tổng quan về nội dung của Ngăn xếp đơn giản là in nó. Chuyển một đối tượng Stack tới System.out.println và phương thức toString () của Stack sẽ tạo ra một bản tóm tắt đẹp:


System.out.println(Customers);

Đoạn mã trên in kết quả sau ra bảng điều khiển:

[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella Jones, Jessica Brown]

Tìm kiếm vị trí mục trong ngăn xếp

Nếu bạn biết một mục trong Ngăn xếp, bạn có thể xác định vị trí chỉ mục của nó hoặc vị trí của nó so với phần trên cùng của Ngăn xếp. Các Chỉ số() phương thức lấy một mục trong Ngăn xếp và trả về vị trí chỉ mục của nó. Hãy lưu ý rằng một Ngăn xếp bắt đầu lập chỉ mục các mục của nó ở mức 0.


System.out.println(Customers.indexOf("Jane Doe"));

Đoạn mã trên in kết quả sau ra bảng điều khiển:

0

Các Tìm kiếm() phương thức là một trong những phương thức chính của lớp Stack. Nó trả về một vị trí mục liên quan đến đầu ngăn xếp, trong đó mục ở đầu Ngăn xếp có vị trí số một.

System.out.println(Customers.search("Jane Doe"));

Đoạn mã trên in kết quả sau ra bảng điều khiển:

7

Nếu bạn cung cấp Tìm kiếm() hoặc là Chỉ số() với một mục không có trong Ngăn xếp, chúng sẽ trả về một mục âm.

System.out.println(Customers.search("Elsa Doe"));
System.out.println(Customers.indexOf("Elsa Doe"));

Đoạn mã trên in kết quả sau ra bảng điều khiển:

-1
-1

Cập nhật các mục trong một ngăn xếp

Bạn chỉ có thể thao tác một mục ở đầu Ngăn xếp. Vì vậy, nếu bạn muốn cập nhật một phần tử không ở trên cùng của Ngăn xếp, bạn sẽ phải bật tất cả các mục ở trên nó. Các nhạc pop() phương thức là một trong những phương thức chính của Stack. Các nhạc pop() phương thức không có đối số. Nó loại bỏ mục ở trên cùng của ngăn xếp và trả lại nó.



Customers.pop();
Customers.pop();
Customers.push("Ella James");
Customers.push("Jessica Brown");
System.out.println(Customers);

Đoạn mã trên in kết quả sau ra bảng điều khiển:

[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella James, Jessica Brown]

Như bạn có thể thấy từ đầu ra, mã cập nhật họ của Ella thành James. Nó liên quan đến một quá trình bật các mục từ ngăn xếp cho đến khi bạn đến đối tượng mục tiêu. Sau đó, nó bật đối tượng đích; cập nhật nó; và đẩy nó, cùng với các vật phẩm nằm trên vật phẩm mục tiêu, trở lại ngăn xếp. Bạn sẽ phải sử dụng một chương trình thực hiện các thao tác như trên, mỗi khi bạn muốn cập nhật một mục trong Ngăn xếp của mình.

Xóa một mục khỏi một ngăn xếp

Để xóa một mục khỏi cấu trúc dữ liệu Ngăn xếp, bạn có thể sử dụng lại phương thức pop (). Nếu mục bạn muốn xóa không ở trên cùng, bạn có thể bật các mục ở trên cùng cho đến khi đạt được mục mong muốn.

Xóa tất cả các mục trong một ngăn xếp

Để xóa tất cả các phần tử khỏi Stack, bạn có thể sử dụng vòng lặp while trong Java với phương thức pop () để xóa từng phần tử một. Tuy nhiên, một cách tiếp cận hiệu quả hơn là sử dụng xa lạ() phương pháp. Các xa lạ() là một phương thức mà lớp Stack kế thừa từ lớp Vector. Nó không cần đối số, không trả về gì, mà chỉ đơn giản là loại bỏ tất cả các phần tử trong cấu trúc dữ liệu Stack.


Customers.clear();
System.out.println(Customers.empty());

Đoạn mã trên sẽ xóa tất cả các mục trong Ngăn xếp khách hàng. Sau đó, nó sử dụng trống rỗng() để kiểm tra xem Ngăn xếp có trống không. Các trống rỗng() là một phương thức chính khác của Lớp ngăn xếp Java. Nó không có đối số và trả về một giá trị Boolean. Phương thức này trả về true nếu Stack trống và false nếu ngược lại.

Đoạn mã trên in kết quả sau ra bảng điều khiển:

true

Các ứng dụng thực tế cho cấu trúc dữ liệu ngăn xếp

Cấu trúc dữ liệu Stack rất hạn chế. Nó không cung cấp nhiều tính linh hoạt trong xử lý dữ liệu như các cấu trúc dữ liệu khác. Điều này đặt ra câu hỏi: khi nào bạn nên sử dụng cấu trúc dữ liệu Stack?

Cấu trúc dữ liệu Stack phù hợp lý tưởng cho các ứng dụng yêu cầu xử lý dữ liệu theo thứ tự ngược lại. Bao gồm các:

  • Một ứng dụng kiểm tra xem một từ có phải là palindrome hay không.
  • Một ứng dụng chuyển đổi số thập phân thành số nhị phân.
  • Các ứng dụng cho phép người dùng hoàn tác.
  • Các trò chơi cho phép người dùng quay lại các nước đi trước đó, chẳng hạn như trò chơi cờ vua.

Similar Posts

Leave a Reply

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