Khi cần kiểm tra xem một danh sách được liên kết đơn lẻ có phải là palindrome hay không, các phương pháp để thêm một phần tử, lấy nút trước đó và kiểm tra xem một palindrome có được xác định hay không.
Dưới đây là một minh chứng về điều tương tự -
Ví dụ
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList_struct: def __init__(self): self.head = None self.last_node = None def add_elements(self, data): if self.last_node is None: self.head = Node(data) self.last_node = self.head else: self.last_node.next = Node(data) self.last_node = self.last_node.next def get_previous_node(self, ref_node): curr = self.head while (curr and curr.next != ref_node): curr = curr.next return curr def check_palindrome(my_list): beg = my_list.head end = my_list.last_node while (beg != end and end.next != beg): if beg.data != end.data: return False beg = beg.next end = my_list.get_previous_node(end) return True my_instance = LinkedList_struct() my_input = input('Enter elements to the linked list: ').split() for data in my_input: my_instance.add_elements(int(data)) if check_palindrome(my_instance): print('The linked list is palindromic in nature') else: print('The linked list is not palindromic in nature')
Đầu ra
Enter elements to the linked list: 89 90 78 90 89 The linked list is palindromic in nature
Giải thích
-
Lớp 'Node' được tạo.
-
Một lớp ‘LinkedList_struct’ 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’ và nút cuối cùng thành ‘None’.
-
Một phương thức khác có tên là ‘add_elements’ được xác định, được sử dụng để tìm nạp nút trước đó trong danh sách được liên kết.
-
Một phương thức khác có tên là ‘get_previous_node’ được xác định dùng để hiển thị dữ liệu danh sách được liên kết trên bảng điều khiển.
-
Phương thức có tên ‘check_palindrome’ được xác định, so sánh phần tử đầu tiên và phần tử cuối cùng, nếu chúng không giống nhau, nó xác định rằng danh sách không phải là palindromic về bản chất.
-
Một đối tượng của lớp ‘LinkedList_struct’ được tạo.
-
Đầu vào của người dùng được sử dụng cho các phần tử trong danh sách được liên kết.
-
Các phần tử được thêm vào danh sách liên kết.
-
Phương thức ‘check_palindrome’ được gọi trong danh sách được liên kết này.
-
Đầu ra có liên quan được hiển thị trên bảng điều khiển.