Khi được yêu cầu xóa một nút khỏi đầu danh sách được liên kết kép, một lớp ‘Node’ cần được tạo. Trong lớp này, có ba thuộc tính, dữ liệu có trong nút, quyền truy cập vào nút tiếp theo của danh sách được liên kết và quyền truy cập vào nút trước đó của danh sách được liên kết.
Dưới đây là một minh chứng cho điều tương tự -
Ví dụ
Nútclass Node: def __init__(self, my_data): self.prev = None self.data = my_data self.next = None class double_list: def __init__(self): self.head = None self.tail = None def add_data(self, my_data): new_node = Node(my_data) if(self.head == None): self.head = self.tail = new_node; self.head.previous = None; self.tail.next = None; else: self.tail.next = new_node; new_node.previous = self.tail; self.tail = new_node; self.tail.next = None; def print_it(self): curr = self.head if (self.head == None): print("The list is empty") return print("The nodes in the doubly linked list are :") while curr != None: print(curr.data) curr = curr.next def delete_from_beginning(self): if(self.head == None): return; else: if(self.head != self.tail): self.head = self.head.next; self.head.previous = None; else: self.head = self.tail = None; my_instance = double_list() print("Elements are being added to the doubly linked list") my_instance.add_data(10) my_instance.add_data(24) my_instance.add_data(54) my_instance.add_data(77) my_instance.add_data(92) my_instance.print_it() while(my_instance.head != None): my_instance.delete_from_beginning(); print("The list after deleting the element from the beginning is : "); my_instance.print_it();
Đầu ra
Elements are being added to the doubly linked list The nodes in the doubly linked list are : 10 24 54 77 92 The list after deleting the element from the beginning is : The nodes in the doubly linked list are : 24 54 77 92 The list after deleting the element from the beginning is : The nodes in the doubly linked list are : 54 77 92 The list after deleting the element from the beginning is : The nodes in the doubly linked list are : 77 92 The list after deleting the element from the beginning is : The nodes in the doubly linked list are : 92 The list after deleting the element from the beginning is : The list is empty
Giải thích
- Lớp 'Node' đã được tạo.
- Một lớp khác với các thuộc tính bắt buộc được tạo.
- Một phương thức có tên 'add_data' được xác định, được sử dụng để thêm dữ liệu vào danh sách được liên kết kép.
- Một phương thức khác có tên là 'print_it' được xác định, phương thức này sẽ hiển thị các nút của danh sách liên kết vòng tròn.
- Một phương thức khác có tên là ‘delete_from_beginning’ được xác định, sẽ xóa nút ngay từ đầu, tức là nút ‘head’ và đặt nút tiếp theo làm nút đầu trong danh sách liên kết vòng.
- Một đối tượng của lớp 'double_list' được tạo và các phương thức được gọi trên nó để xóa một nút khỏi đầu danh sách được liên kết kép.
- Một phương thức 'init' được xác định, rằng các nút gốc, đầu và cuối của danh sách được liên kết kép thành Không.
- Danh sách được lặp đi lặp lại và mọi nút từ đầu sẽ bị xóa cho đến khi nó trống.
- Điều này được hiển thị trên bảng điều khiển bằng phương thức "print_it".