Hướng dẫn how do you implement a stack class in python? - làm thế nào để bạn triển khai một lớp ngăn xếp trong python?

Trong hướng dẫn này, chúng tôi sẽ tạo ra một ngăn xếp trong từng bước của Python. Ngăn xếp là cấu trúc dữ liệu LIFO (lần đầu tiên).

Để tạo một ngăn xếp trong Python, bạn có thể sử dụng một lớp với một thuộc tính duy nhất của danh sách loại. Các phần tử của ngăn xếp được lưu trữ trong danh sách bằng phương pháp đẩy và được truy xuất bằng phương pháp POP. Các phương pháp bổ sung cho phép có được kích thước của ngăn xếp và giá trị của phần tử ở đầu ngăn xếp.

Chúng tôi sẽ xây dựng một lớp tùy chỉnh thực hiện các hoạt động chung được cung cấp bởi cấu trúc dữ liệu ngăn xếp.

Hãy bắt đầu xây dựng nó!

  • Cách bắt đầu xây dựng lớp cho ngăn xếp
  • Sử dụng các hoạt động đẩy và pop trên ngăn xếp của chúng tôi
  • Xử lý lỗi khi sử dụng Pop trên một ngăn xếp trống
  • Lấy số lượng các yếu tố trong ngăn xếp Python
  • Lấy lại giá trị của phần tử ở đầu ngăn xếp
  • Sự kết luận

Cách bắt đầu xây dựng lớp cho ngăn xếp

Sử dụng các hoạt động đẩy và pop trên ngăn xếp của chúng tôi

Xử lý lỗi khi sử dụng Pop trên một ngăn xếp trống

Lấy số lượng các yếu tố trong ngăn xếp Python

Lấy lại giá trị của phần tử ở đầu ngăn xếp

Sự kết luận

Cấu trúc dữ liệu chúng tôi sẽ sử dụng bên trong lớp của chúng tôi để tạo ngăn xếp Python là một danh sách.

class Stack:    def __init__(self):        self.elements = []

Lớp sẽ hạn chế loại hoạt động có thể được thực hiện so với danh sách xem xét rằng một ngăn xếp không cho phép tất cả các hoạt động có thể có với danh sách Python.push and pop:

  • Khi làm việc với một danh sách, bạn có quyền tự do thêm và xóa các yếu tố ở đầu ở giữa và ở cuối danh sách. Điều tương tự không áp dụng cho một ngăn xếp. adds an element to the top of the stack.
  • Khi làm việc với Stack & NBSP; bạn chỉ có thể thêm một phần tử vào đỉnh của ngăn xếp và loại bỏ phần tử khỏi đỉnh của ngăn xếp. Đó là bởi vì theo định nghĩa, một ngăn xếp là cấu trúc dữ liệu đầu tiên vào lần cuối. removes the last element from the top of the stack.

Hãy bắt đầu bằng cách tạo một lớp gọi là Stack có thuộc tính danh sách có tên là các phần tử.

def push(self, data):    self.elements.append(data)

Chất xây dựng của lớp ngăn xếp khởi tạo các phần tử thuộc tính vào một danh sách trống.

def pop(self):    return self.elements.pop()

Hai hoạt động đầu tiên chúng tôi muốn hỗ trợ trong ngăn xếp của chúng tôi là PUSP VÀ POP:

Sử dụng các hoạt động đẩy và pop trên ngăn xếp của chúng tôi

Xử lý lỗi khi sử dụng Pop trên một ngăn xếp trống

class Stack:    def __init__(self):        self.elements = []    def push(self, data):        self.elements.append(data)    def pop(self):        return self.elements.pop()

Lấy số lượng các yếu tố trong ngăn xếp Python

stack = Stack()print(stack.__dict__)[output]{'elements': []}

Lấy lại giá trị của phần tử ở đầu ngăn xếp

Sự kết luận

stack.push(3)stack.push('test')print(stack.pop())print(stack.pop())[output]test3


Cấu trúc dữ liệu chúng tôi sẽ sử dụng bên trong lớp của chúng tôi để tạo ngăn xếp Python là một danh sách.

Lớp sẽ hạn chế loại hoạt động có thể được thực hiện so với danh sách xem xét rằng một ngăn xếp không cho phép tất cả các hoạt động có thể có với danh sách Python.: notice that the first element returned by pop() is the string test that is the second element we have pushed to the stack. Thats because of the LIFO nature of the stack.

Xử lý lỗi khi sử dụng Pop trên một ngăn xếp trống

Lấy số lượng các yếu tố trong ngăn xếp Python

Lấy lại giá trị của phần tử ở đầu ngăn xếp

print(stack.pop())

Sự kết luận

Traceback (most recent call last):   File "/opt/Python/Tutorials/create_stack.py", line 17, in      print(stack.pop())   File "/opt/Python/Tutorials/create_stack.py", line 9, in pop     return self.elements.pop() IndexError: pop from empty list

Cấu trúc dữ liệu chúng tôi sẽ sử dụng bên trong lớp của chúng tôi để tạo ngăn xếp Python là một danh sách.

Lớp sẽ hạn chế loại hoạt động có thể được thực hiện so với danh sách xem xét rằng một ngăn xếp không cho phép tất cả các hoạt động có thể có với danh sách Python.

Khi làm việc với một danh sách, bạn có quyền tự do thêm và xóa các yếu tố ở đầu ở giữa và ở cuối danh sách. Điều tương tự không áp dụng cho một ngăn xếp.

Khi làm việc với Stack & NBSP; bạn chỉ có thể thêm một phần tử vào đỉnh của ngăn xếp và loại bỏ phần tử khỏi đỉnh của ngăn xếp. Đó là bởi vì theo định nghĩa, một ngăn xếp là cấu trúc dữ liệu đầu tiên vào lần cuối.

Hãy bắt đầu bằng cách tạo một lớp gọi là Stack có thuộc tính danh sách có tên là các phần tử.

def pop(self):    if self.elements:        return self.elements.pop()    else:        return None

Chất xây dựng của lớp ngăn xếp khởi tạo các phần tử thuộc tính vào một danh sách trống.

stack = Stack()print(stack.pop())

Hai hoạt động đầu tiên chúng tôi muốn hỗ trợ trong ngăn xếp của chúng tôi là PUSP VÀ POP:

Lấy số lượng các yếu tố trong ngăn xếp Python

Lấy lại giá trị của phần tử ở đầu ngăn xếp

Sự kết luận

def push(self, data):    self.elements.append(data)
0

Cấu trúc dữ liệu chúng tôi sẽ sử dụng bên trong lớp của chúng tôi để tạo ngăn xếp Python là một danh sách.

def push(self, data):    self.elements.append(data)
1

Lớp sẽ hạn chế loại hoạt động có thể được thực hiện so với danh sách xem xét rằng một ngăn xếp không cho phép tất cả các hoạt động có thể có với danh sách Python.

Khi làm việc với một danh sách, bạn có quyền tự do thêm và xóa các yếu tố ở đầu ở giữa và ở cuối danh sách. Điều tương tự không áp dụng cho một ngăn xếp.

def push(self, data):    self.elements.append(data)
2

Khi làm việc với Stack & NBSP; bạn chỉ có thể thêm một phần tử vào đỉnh của ngăn xếp và loại bỏ phần tử khỏi đỉnh của ngăn xếp. Đó là bởi vì theo định nghĩa, một ngăn xếp là cấu trúc dữ liệu đầu tiên vào lần cuối.call a class method from another method within the same class.

Hãy bắt đầu bằng cách tạo một lớp gọi là Stack có thuộc tính danh sách có tên là các phần tử.

Chất xây dựng của lớp ngăn xếp khởi tạo các phần tử thuộc tính vào một danh sách trống.

Hai hoạt động đầu tiên chúng tôi muốn hỗ trợ trong ngăn xếp của chúng tôi là PUSP VÀ POP:

Đẩy thêm một phần tử vào đỉnh của ngăn xếp.

Lấy lại giá trị của phần tử ở đầu ngăn xếp

Sự kết luận

Cấu trúc dữ liệu chúng tôi sẽ sử dụng bên trong lớp của chúng tôi để tạo ngăn xếp Python là một danh sách.

Hoạt động lấy phần tử ở đầu ngăn xếp được gọi là Peek.

def push(self, data):    self.elements.append(data)
4

Phương pháp này là siêu đơn giản. Chúng tôi đang sử dụng một chỉ số tiêu cực để có được phần tử cuối cùng trong danh sách các phần tử về cơ bản là phần tử ở đầu ngăn xếp của chúng tôi.

def push(self, data):    self.elements.append(data)
5

Phương pháp thực hiện chính xác những gì chúng tôi muốn làm.

Sự kết luận

Trong hướng dẫn này, chúng tôi đã thấy cách thực hiện một ngăn xếp trong từng bước của Python bằng cách sử dụng một lớp tùy chỉnh.

Chúng tôi đã triển khai năm hoạt động cho ngăn xếp tùy chỉnh của chúng tôi:

  • Đẩy: Để thêm một phần tử vào đỉnh của ngăn xếp.: to add an element to the top of the stack.
  • POP: Để truy xuất phần tử ở đầu ngăn xếp.: to retrieve the element at the top of the stack.
  • Kích thước: Để có được kích thước của ngăn xếp.: to get the size of the stack.
  • Trống: để kiểm tra xem ngăn xếp có trống không.: to check if the stack is empty.
  • PEEK: Để có được giá trị của phần tử ở đầu ngăn xếp.: to get the value of the element at the top of the stack.

Tôi hy vọng bạn thấy nó hữu ích 🙂

Bài viết liên quan:

Hướng dẫn how do you implement a stack class in python? - làm thế nào để bạn triển khai một lớp ngăn xếp trong python?

Tôi là một nhà lãnh đạo công nghệ, kỹ sư phần mềm và huấn luyện viên lập trình. Tôi muốn giúp bạn trong hành trình trở thành một nhà phát triển siêu!

Làm thế nào để bạn thực hiện một ngăn xếp?

Việc triển khai ngăn xếp trong các cấu trúc dữ liệu Bạn có thể thực hiện việc triển khai các ngăn xếp trong các cấu trúc dữ liệu bằng hai cấu trúc dữ liệu là một mảng và danh sách được liên kết. Mảng: Trong triển khai mảng, ngăn xếp được hình thành bằng một mảng. Tất cả các hoạt động được thực hiện bằng các mảng.using two data structures that are an array and a linked list. Array: In array implementation, the stack is formed using an array. All the operations are performed using arrays.

Làm thế nào để bạn thực hiện một ngăn xếp bằng một mảng trong Python?

Sử dụng mảng..
Tuyên bố một danh sách và một số nguyên tối đa và biểu thị kích thước tối đa của ngăn xếp ..
Ban đầu đặt đầu thành 0 ..
Hoạt động đẩy: Kiểm tra xem mức tối đa của ngăn xếp lớn hơn đầu. ....
Hoạt động pop: Kiểm tra xem Top có lớn hơn 0 không: ....
Hoạt động kích thước: Kích thước của ngăn xếp là giá trị của con trỏ trên cùng ..

Ví dụ, ngăn xếp trong Python là gì?

Một ngăn xếp là một cấu trúc dữ liệu tuyến tính trong đó dữ liệu được sắp xếp các đối tượng trên một đối tượng khác.Nó lưu trữ dữ liệu theo cách LIFO (cuối cùng theo cách đầu tiên).Dữ liệu được lưu trữ theo thứ tự tương tự khi các tấm được sắp xếp một cái khác trong nhà bếp.Ví dụ đơn giản về một ngăn xếp là tính năng hoàn tác trong trình soạn thảo.a linear data structure where data is arranged objects on over another. It stores the data in LIFO (Last in First Out) manner. The data is stored in a similar order as plates are arranged one above another in the kitchen. The simple example of a stack is the Undo feature in the editor.

Có một mô -đun ngăn xếp trong Python?

Deque để tạo ra một ngăn xếp Python.Mô -đun bộ sưu tập chứa Deque, rất hữu ích cho việc tạo ngăn xếp Python.Deque được phát âm là bộ bài và là viết tắt của hàng đợi hai kết thúc.The collections module contains deque , which is useful for creating Python stacks. deque is pronounced “deck” and stands for “double-ended queue.”