Khi cần đếm số lượng nút trong 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.
Trong một danh sách được liên kết kép, các nút có các con trỏ. Nút hiện tại sẽ có một con trỏ đến nút tiếp theo cũng như nút trước đó. Giá trị cuối cùng trong danh sách sẽ có giá trị ‘NULL’ trong con trỏ tiếp theo. Nó có thể được đi ngang theo cả hai hướng.
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 count_val: 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 count_node(self): my_counter = 0; curr = self.head; while(curr != None): my_counter = my_counter + 1; curr = curr.next; return my_counter; def print_it(self): curr = self.head if (self.head == None): print("The list is empty") return print("The nodes are :") while curr != None: print(curr.data) curr = curr.next my_instance = count_val() print("Elements are being added to the list") my_instance.add_data(10) my_instance.add_data(14) my_instance.add_data(24) my_instance.add_data(17) my_instance.add_data(22) my_instance.print_it() print("The nodes in the doubly linked list are : ") print(my_instance.count_node())
Đầu ra
Elements are being added to the list The nodes are : 10 14 24 17 22 The nodes in the doubly linked list are : 5
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 'count_node' được xác định, giúp tìm nạp số lượng nút trong 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 đối tượng của lớp 'count_val' được tạo và các phương thức được gọi trên đó để chuyển đổi danh sách được liên kết kép thành cây bậc ba.
- 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.
- Phương thức "count_node" được gọi.
- Nó lặp lại qua danh sách được liên kết kép và nhận được số lượng nút trong danh sách.
- Điều này được hiển thị trên bảng điều khiển bằng phương thức "print_it".