Khi cần triển khai cấu trúc dữ liệu ngăn xếp (stack) sử dụng danh sách liên kết, phương thức thêm (push) phần tử vào danh sách liên kết và phương thức xóa (pop) phần tử của danh sách liên kết được định nghĩa.
Ví dụ
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Stack_structure:
def __init__(self):
self.head = None
def push_val(self, data):
if self.head is None:
self.head = Node(data)
else:
newNode = Node(data)
newNode.next = self.head
self.head = newNode
def pop_val(self):
if self.head is None:
return None
else:
del_Val = self.head.data
self.head = self.head.next
return del_Val
my_instance = Stack_structure()
while True:
print('push ')
print('pop')
print('quit')
my_input = input('Hành động bạn muốn thực hiện? ').split()
operation = my_input[0].strip().lower()
if operation == 'push':
my_instance.push_val(int(my_input[1]))
elif operation == 'pop':
del_Val = my_instance.pop_val()
if del_Val is None:
print('Ngăn xếp rỗng.')
else:
print('Giá trị bị xóa là: ', int(del_Val))
elif operation == 'quit':
break
Kết quả
pushpop quit Hành động bạn muốn thực hiện? push 56 push pop quit Hành động bạn muốn thực hiện? push 78 push pop quit Hành động bạn muốn thực hiện? push 90 push pop quit Hành động bạn muốn thực hiện? pop Giá trị bị xóa là: 90 push pop quit Hành động bạn muốn thực hiện? quit
Giải thích
- Lớp
Nodeđược tạo. - Lớp
Stack_structurevới các thuộc tính cần thiết được tạo. - Phương thức
__init__khởi tạo phần tử đầu tiên (head) làNone. - Phương thức
push_valgiúp thêm giá trị vào ngăn xếp. - Phương thức
pop_valgiúp xóa giá trị từ đỉnh ngăn xếp và trả về giá trị bị xóa. - Một instance của
Stack_structuređược tạo. - Ba tùy chọn được đưa ra:
push,popvàquit. - Tùy chọn
pushthêm một giá trị cụ thể vào ngăn xếp. - Tùy chọn
popxóa phần tử đỉnh khỏi ngăn xếp. - Tùy chọn
quitthoát khỏi vòng lặp. - Dựa trên lựa chọn/đầu vào của người dùng, các thao tác tương ứng được thực hiện.
- Kết quả được hiển thị trên console.