Cách Xóa Ngăn Xếp

Mục lục:

Cách Xóa Ngăn Xếp
Cách Xóa Ngăn Xếp

Video: Cách Xóa Ngăn Xếp

Video: Cách Xóa Ngăn Xếp
Video: NGĂN XẾP (1) | Stack | Cấu trúc dữ liệu và giải thuật 2024, Có thể
Anonim

Một trong những kiểu cấu trúc dữ liệu được sử dụng rộng rãi hiện nay trong lập trình ứng dụng là ngăn xếp. Tính đặc thù của nó là nguyên tắc tổ chức các phần tử, trong đó việc thêm và bớt chúng chỉ có thể thực hiện một cách dễ dàng và chỉ thông qua "đỉnh", tức là theo nguyên tắc LIFO. Nhưng đôi khi cần phải xóa toàn bộ ngăn xếp cùng một lúc.

Cách xóa ngăn xếp
Cách xóa ngăn xếp

Cần thiết

  • - trình soạn thảo văn bản hoặc IDE;
  • - một trình dịch từ ngôn ngữ lập trình được sử dụng.

Hướng dẫn

Bước 1

Sử dụng các phương thức trên các đối tượng ngăn xếp được thiết kế đặc biệt để dọn dẹp ngăn xếp. Chúng có mặt trong hầu hết các lớp tương ứng của các thư viện và khuôn khổ khác nhau. Ví dụ, lớp. NET Stack có phương thức Clear. Một ví dụ về ứng dụng của nó trong C # có thể trông như thế này:

Stack oStack = new Stack (); // tạo một đối tượng ngăn xếp

oStack. Push ("000"); // lấp đầy ngăn xếp

oStack. Push ("111");

oStack. Clear (); // xóa ngăn xếp

Bước 2

Các phương thức thay đổi số lượng phần tử của các lớp vùng chứa, trên đó chức năng của các lớp ngăn xếp thường được xây dựng, cũng có thể được sử dụng để làm sạch. Bạn chỉ cần giảm số phần tử hiện tại xuống 0. Ví dụ, lớp mẫu Qt QStack kế thừa từ lớp mẫu QVector, lớp này có phương thức thay đổi kích thước. Một ví dụ về việc sử dụng nó có thể như thế này:

QStack oStack; // khai báo đối tượng ngăn xếp

for (int i = 0; i <10; i ++) oStack.push (i); // lấp đầy ngăn xếp

oStack.resize (0); // xóa ngăn xếp

Bước 3

Việc dọn dẹp một đối tượng ngăn xếp thường có thể được thực hiện thông qua toán tử gán, toán tử này thường được thực hiện trong các lớp tương ứng. Để làm điều này, đối tượng của ngăn xếp được xóa phải được gán một đối tượng tạm thời được tạo bởi phương thức khởi tạo mặc định. Ví dụ, lớp tạo mẫu ngăn xếp Thư viện Chuẩn C ++, là một bộ điều hợp cho các lớp được tạo mẫu vùng chứa, không có các phương thức để tự ý thay đổi số hoặc loại bỏ tất cả các phần tử. Bạn có thể xóa nó như thế này:

std:: stack <int, std:: list> oStack; // khai báo đối tượng ngăn xếp

for (int i = 0; i <10; i ++) oStack.push (i); // lấp đầy ngăn xếp

oStack = std:: stack(); // xóa ngăn xế

Bước 4

Xóa đối tượng ngăn xếp bằng cách gọi hàm tạo bản sao sử dụng toán tử mới với đối số đối tượng được tạo bởi hàm tạo mặc định:

std:: stack <int, std:: list> oStack; // khai báo đối tượng ngăn xếp

for (int i = 0; i <10; i ++) oStack.push (i); // lấp đầy ngăn xếp

std mới:: ngăn xếp(oStack); // xóa ngăn xế

Bước 5

Ngăn xếp có thể được xóa bằng cách truy xuất tuần tự tất cả các phần tử bằng các phương pháp thích hợp:

std:: stack <int, std:: list> oStack; // khai báo đối tượng ngăn xếp

for (int i = 0; i <10; i ++) oStack.push (i); // lấp đầy ngăn xếp

while (! oStack.empty ()) oStack.pop (); // xóa ngăn xếp

Tuy nhiên, cách tiếp cận này có độ phức tạp về thời gian phụ thuộc tuyến tính vào số lượng phần tử trong ngăn xếp. Vì vậy, việc sử dụng nó là không hợp lý.

Đề xuất: