Khi bắt buộc phải triển khai cấu trúc dữ liệu ngăn xếp bằng danh sách được liên kết, phương pháp để thêm (giá trị đẩy) phần tử vào danh sách được liên kết và phương pháp xóa (giá trị bật) các phần tử của danh sách liên kết được xác định.
Dưới đây là một minh chứng cho điều tương tự -
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 <value>') print('pop') print('quit') my_input = input('What action would you like to perform ? ').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('The stack is empty.') else: print('The deleted value is : ', int(del_Val)) elif operation == 'quit': break
Đầu ra
push <value> pop quit What action would you like to perform ? push 56 push <value> pop quit What action would you like to perform ? push 78 push <value> pop quit What action would you like to perform ? push 90 push <value> pop quit What action would you like to perform ? pop The deleted value is : 90 push <value> pop quit What action would you like to perform ? quit
Giải thích
-
Lớp 'Node' được tạo.
-
Một lớp ‘Stack_ Structure’ khác với các thuộc tính bắt buộc được tạo.
-
Nó có chức năng ‘init’ được sử dụng để khởi tạo phần tử đầu tiên, tức là ‘head’ thành ‘None’.
-
Phương thức có tên ‘push_val’ được xác định, giúp thêm giá trị vào ngăn xếp.
-
Một phương thức khác có tên là ‘pop_val’ được xác định, giúp xóa một giá trị khỏi đầu ngăn xếp và trả về giá trị đã xóa.
-
Một phiên bản của ‘Stack_ Structure’ được tạo.
-
Ba tùy chọn được đưa ra, chẳng hạn như "đẩy", "bật" và "thoát".
-
Tùy chọn 'push' thêm một giá trị cụ thể vào ngăn xếp.
-
Tùy chọn 'pop' sẽ xóa phần tử trên cùng khỏi ngăn xếp.
-
Tùy chọn 'thoát' không có trong vòng lặp.
-
Dựa trên đầu vào / lựa chọn của người dùng, các hoạt động tương ứng được thực hiện.
-
Đầu ra này được hiển thị trên bảng điều khiển.