반응형
연결된 목록은 각 요소가 데이터와 목록의 다음 노드에 대한 참조를 저장하는 노드로 알려진 별도의 개체인 선형 데이터 구조입니다. 목록의 마지막 노드는 목록의 끝을 나타내는 null 참조를 가리킵니다. 연결된 목록은 동적 데이터 구조이므로 프로그램 실행 중에 크기가 커지거나 줄어들 수 있습니다.
다음은 Python에서 간단한 연결 목록 구현의 예입니다.
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
current = self.head
while current.next:
current = current.next
current.next = new_node
이 구현에는 Node와 LinkedList의 두 클래스가 포함됩니다. Node 클래스는 목록의 단일 노드를 나타내고 LinkedList 클래스는 연결된 목록 자체를 나타냅니다. LinkedList 클래스에는 목록의 첫 번째 노드를 가리키는 head 특성과 목록 끝에 새 노드를 추가하는 추가 메서드가 있습니다.
구현을 테스트하려면 Python의 내장 unittest 모듈을 사용할 수 있습니다. 다음은 이를 사용하여 LinkedList 클래스를 테스트하는 방법의 예입니다.
import unittest
class TestLinkedList(unittest.TestCase):
def setUp(self):
self.linked_list = LinkedList()
def test_append(self):
self.linked_list.append(1)
self.linked_list.append(2)
self.linked_list.append(3)
self.assertEqual(self.linked_list.head.data, 1)
self.assertEqual(self.linked_list.head.next.data, 2)
self.assertEqual(self.linked_list.head.next.next.data, 3)
if __name__ == '__main__':
unittest.main()
이 테스트 사례는 새 연결 목록을 만들고 추가 메서드를 사용하여 세 개의 노드를 추가합니다. 그런 다음 노드의 데이터가 올바른지 확인합니다.
반응형
'개발팁 > Python' 카테고리의 다른 글
파이썬으로 코딩을 시작하세요: 프로그래밍의 세계에 입문하기 위한 초보자 가이드 (0) | 2023.04.26 |
---|---|
Python 1주일이면 취업할 수 있어!! 로드맵 전격 공개 (0) | 2022.12.25 |
[Python] RESTful API 만들기 (0) | 2022.12.17 |
Python과 셀레니움을 이용한 동적 스크래핑 (0) | 2022.12.15 |
실무적용 가능한 탐욕 알고리즘 (Python 예제) (0) | 2022.12.15 |