Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

재귀를 사용하여 연결 목록의 길이를 찾는 Python 프로그램

<시간/>

재귀를 이용하여 연결 리스트의 길이를 구해야 하는 경우, 연결 리스트에 요소를 추가하는 방법과 연결 리스트의 길이를 계산하는 방법이 정의되어 있습니다. 이전에 정의한 길이 계산 방법의 도움으로 호출되는 도우미 함수가 정의됩니다.

아래는 동일한 데모입니다 -

예시

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

class my_linked_list:
   def __init__(self):
      self.head = None
      self.last_node = None

   def add_value(self, my_data):
      if self.last_node is None:
         self.head = Node(my_data)
         self.last_node = self.head
      else:
         self.last_node.next = Node(my_data)
         self.last_node = self.last_node.next

   def calculate_length(self):
      return self.length_helper_fun(self.head)

   def length_helper_fun(self, curr):
      if curr is None:
         return 0
      return 1 + self.length_helper_fun(curr.next)

my_instance = my_linked_list()
my_data = input('Enter elements of the linked list ').split()
for elem in my_data:
   my_instance.add_value(int(elem))
print('The length of the linked list is ' + str(my_instance.calculate_length()))

출력

Enter elements of the linked list 12 45 32 67 88 0 99
The length of the linked list is 7

설명

  • 'Node' 클래스가 생성됩니다.

  • 필수 속성이 있는 또 다른 'my_linked_list' 클래스가 생성됩니다.

  • 첫 번째 요소, 즉 'head'를 'None'으로, 마지막 노드를 'None'으로 초기화하는 데 사용되는 'init' 기능이 있습니다.

  • 'add_value'라는 또 다른 메서드가 정의되어 있는데, 이는 연결 목록에 데이터를 추가하는 데 사용됩니다.

  • 'calculate_length'라는 이름의 또 다른 메서드가 정의되어 있어 연결 리스트의 길이를 찾는 도우미 함수를 호출하는 데 사용됩니다.

  • 여기서 재귀를 사용해야 하므로 도우미 함수가 정의됩니다.

  • 노드의 현재 값을 확인하고 목록의 길이를 반환합니다.

  • my_linked_list' 클래스의 객체가 생성됩니다.

  • 연결 목록의 요소에 대한 사용자 입력을 받습니다.

  • 데이터를 추가하기 위해 메소드가 호출됩니다.

  • Calculate_length 메서드가 호출되고 콘솔에 출력이 표시됩니다.