Создайте класс тестера в связанном списке для отображения четных чисел

#python #data-structures

Вопрос:

Это мой класс узлов и класс Mylist

 class Node:
    def __init__(self, data=None, next=None):
        self.data = data
        self.next = next


class MyList():
    def __init__(self,head=None):
        self.head = head

    def showList(self):
        temp = self.head
        while (temp):
            print(temp.data)
            temp = temp.next
        if self.head is None:
            print("Empty List")
 

Это моя функция отображения четного числа

 def showeven(even):
    head = None

    while even:
        if even.data % 2 == 0:
            new_Node = Node(even.data, None)

            if head is None:
                tail = new_Node
                head = new_Node
            else:
                tail.next = new_Node
                tail = new_Node

    MyList(head).showList()
 

Можете ли вы, ребята, помочь мне создать класс тестировщика или что-то в этом роде

Ответ №1:

Вы можете просто написать что-то вроде этого.

 def print_even_nodes(self):                                                                                                                                                                                                                                                                                                                                                  
     traverse = self.head                                                                                                                                                            
     while (traverse != None):                                                                                                                                                               
        if (traverse.data % 2 == 0):                                                                                                                                                      
            print(traverse.data)                                                                                                                                                               
        traverse = traverse.next   
 

Это очень похоже на печать всего односвязного списка, единственное ключевое отличие заключается в том, что мы проверяем, делится ли этот конкретный узел ( node.data поле) на 2. Если это правда, мы распечатываем элемент, иначе переходим к следующему узлу.