데이터를 관리하기위한 추상자료형과 자료구조 도구들
💡 생각하는 시간 : ADT를 활용하는 이유?


🔍 자세히보기 : 리스트와 연결리스트

# 연결리스트의 노드를 저장하는 첫 단계
class Node:
def __init__(self,value,next=None):
self.value = value # 노드의 값을 나타내는 value
self.next = next # 노드의 다음위치를 가리키는 next의 초기값은 None
class linked_list:
def __init__(self,value):
self.head = Node(value) # 초기 클래스에 head노드선언
def add_node(value):
print('head.value:', head.value)
print('head.next:', head.next)
node = head # 첫번째 위치에 해당하는 head를 생성하고, node 변수에 저장
while node.next: # head노드의 다음위치에 노드가 생성될 때까지 반복문 진행
node = node.next # head노드의 다음위치에 노드가 있는 경우(두번째 노드라고 가정),
print('print in while:', node.next)
# 두번째 노드부터 node변수에 저장
node.next = Node(value) # 데이터를 노드 다음위치에 저장
# 연결리스트의 노드값들에 대해
head = Node(5) # head노드에 값5를 저장
linked_list.add_node(11) # 값11을 추가
print(head.value) # head노드의 값은 5
print(head.next.value) # head노드의 다음위치노드의 값은 11
# 리스트를 연결
node1 = Node(3)
node2 = Node(4)
node3 = Node(5)
node4 = Node(6)
node1.next = node2
node2.next = node3
node3.next = node4
node = node1 # 첫번째노드부터 시작
while node: # 노드별로 반복문을 수행
print(node.value)
node = node.next # 다음노드를 현재노드에 저장하면서 위치를 바꿈