Để triển khai ngăn xếp bằng cách sử dụng khái niệm danh sách được liên kết đơn lẻ, tất cả các hoạt động của danh sách được liên kết đơn lẻ phải được thực hiện dựa trên hoạt động của Stack LIFO (vào sau ra trước) và với sự trợ giúp của kiến thức đó, chúng ta sẽ triển khai ngăn xếp bằng cách sử dụng liên kết đơn lẻ .
Vì vậy, chúng ta cần tuân theo một quy tắc đơn giản trong việc triển khai ngăn xếp là vào sau ra trước và tất cả các hoạt động có thể được thực hiện với sự trợ giúp của biến trên cùng. Hãy cùng chúng tôi tìm hiểu cách thực hiện các thao tác Pop, Push, Peek và Display trong bài viết sau
Trong Thực hiện ngăn xếp, một ngăn xếp chứa một con trỏ trên cùng. đó là "phần đầu" của ngăn xếp nơi việc đẩy và bật các mục xảy ra ở đầu danh sách. Nút đầu tiên có giá trị rỗng trong trường liên kết và nút liên kết thứ hai có địa chỉ nút đầu tiên trong trường liên kết, v.v. và địa chỉ nút cuối cùng nằm trong con trỏ “trên cùng”
Ưu điểm chính của việc sử dụng danh sách được liên kết trên mảng là có thể triển khai ngăn xếp có thể thu nhỏ hoặc phát triển tùy theo nhu cầu. Sử dụng một mảng sẽ hạn chế dung lượng tối đa của mảng có thể dẫn đến tràn ngăn xếp. Ở đây mỗi nút mới sẽ được phân bổ động. vì vậy tràn là không thể
Trong triển khai mảng, ngăn xếp được hình thành bằng cách sử dụng mảng. Tất cả các hoạt động liên quan đến ngăn xếp được thực hiện bằng cách sử dụng mảng. Hãy xem cách thực hiện từng thao tác trên ngăn xếp bằng cấu trúc dữ liệu mảng
Thêm một phần tử vào ngăn xếp (thao tác đẩy)
Việc thêm một phần tử vào đỉnh ngăn xếp được gọi là thao tác đẩy. Hoạt động đẩy bao gồm hai bước sau
- Tăng biến Top để bây giờ nó có thể tham chiếu đến vị trí bộ nhớ tiếp theo
- Thêm phần tử tại vị trí tăng dần trên cùng. Điều này được gọi là thêm phần tử mới vào đầu ngăn xếp
Ngăn xếp bị tràn khi chúng ta cố gắng chèn một phần tử vào ngăn xếp đã được lấp đầy do đó hàm main của chúng ta phải luôn tránh tình trạng tràn ngăn xếp
thuật toán
Thời gian phức tạp. o(1)
triển khai thuật toán đẩy trong ngôn ngữ C
Xóa phần tử khỏi ngăn xếp (thao tác Pop)
Thao tác xóa một phần tử từ đỉnh ngăn xếp được gọi là thao tác pop. Giá trị của biến top sẽ được tăng thêm 1 mỗi khi một phần tử bị xóa khỏi ngăn xếp. Phần tử trên cùng của ngăn xếp được lưu trữ trong một biến khác và sau đó phần tử trên cùng được giảm đi 1. kết quả là thao tác trả về giá trị đã xóa được lưu trữ trong một biến khác
Điều kiện tràn xảy ra khi chúng ta cố gắng xóa một phần tử khỏi ngăn xếp đã trống
thuật toán
Thời gian phức tạp. o(1)
Thực hiện thuật toán POP sử dụng ngôn ngữ C
Thăm từng phần tử của ngăn xếp (thao tác Peek)
Thao tác tìm kiếm liên quan đến việc trả lại phần tử hiện có ở đầu ngăn xếp mà không xóa nó. Điều kiện tràn có thể xảy ra nếu chúng ta cố gắng trả lại phần tử trên cùng trong một ngăn xếp đã trống
ví dụ
Tại vị trí 2, thêm 2 phần tử
const trái cây = ["Chuối", "Cam", "Táo", "Xoài"];
hoa quả. mối nối(2, 0, "Chanh", "Kiwi");
Tự mình thử »Ở vị trí 2, loại bỏ 2 mục
const trái cây = ["Chuối", "Cam", "Táo", "Xoài", "Kiwi"];
hoa quả. mối nối (2, 2);
Định nghĩa và cách sử dụng
Phương thức splice() thêm và/hoặc xóa các phần tử mảng
Phương thức splice() ghi đè lên mảng ban đầu
cú pháp
mảng. mối nối (chỉ số, số lượng, item1,. , mụcX)
Thông số
Tham sốMô tảChỉ sốBắt buộcVị trí thêm/xóa hạng mục
Giá trị âm xác định vị trí từ cuối mảng. bao nhiêuTùy chọn
Số mục cần xóa. Mục 1,. , itemXOptional
(Các) yếu tố mới được thêm vào
Giá trị trả về
Một mảng chứa các mục đã xóa (nếu có)Thêm ví dụ
Tại vị trí 2, thêm các mục mới và xóa 1 mục
const trái cây = ["Chuối", "Cam", "Táo", "Xoài"];
hoa quả. mối nối(2, 1, "Chanh", "Kiwi");
Hỗ trợ trình duyệt
splice() là một tính năng ECMAScript1 (ES1)
ES1 (JavaScript 1997) được hỗ trợ đầy đủ trên mọi trình duyệt
ChromeEdgeFirefoxSafariOperaIECóCóCóCóCóCóGhi chú. Hàm này phân biệt chữ hoa chữ thường. Sử dụng hàm str_ireplace() để thực hiện tìm kiếm không phân biệt chữ hoa chữ thường
Ghi chú. Hàm này an toàn nhị phân
cú pháp
str_replace(tìm, thay thế, chuỗi, đếm)
Giá trị tham số
Tham sốMô tảtìmYêu cầu. Chỉ định giá trị cho findreplaceRequired. Chỉ định giá trị để thay thế giá trị trong findstringRequired. Chỉ định chuỗi được tìm kiếmcountOptional. Một biến đếm số lần thay thếchi tiết kỹ thuật
Giá trị trả về. Trả về một chuỗi hoặc một mảng với các giá trị thay thế Phiên bản PHP. 4+Nhật ký thay đổi. Tham số đếm đã được thêm vào trong PHP 5. 0Trước PHP 4. 3. 3, chức năng này gặp sự cố khi sử dụng mảng làm cả tham số tìm và thay thế, khiến các chỉ mục tìm trống bị bỏ qua mà không đẩy con trỏ bên trong lên mảng thay thế. Các phiên bản mới hơn sẽ không có vấn đề này