기본 구현은 다음과 같습니다. Node
LinkedList
이 예제는 단일 링크 된 목록을 보여줍니다 (각 노드 포인트에만 포인트가 있습니다). 이중 연결 목록 (노드는 다음 노드와 이전 노드 모두를 가리 킵니다)도 가능합니다. 특정 작업에 대해 다른 성능 특성을 제공합니다. Node
다른 데이터 구조와 비교하여 Python의 링크 된 목록의 장점 및 단점 LinkedList
advantages : intamic size : intamic size : 런타임 중 쉽게 메모리를 사전 할당 해야하는 배열과 달리 class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
current = self.head
while current.next:
current = current.next
current.next = new_node
def prepend(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def delete_node(self, key):
current = self.head
if current and current.data == key:
self.head = current.next
current = None
return
prev = None
while current and current.data != key:
prev = current
current = current.next
if current is None:
return
prev.next = current.next
current = None
def print_list(self):
current = self.head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
#Example Usage
llist = LinkedList()
llist.append(1)
llist.append(2)
llist.append(3)
llist.prepend(0)
llist.delete_node(2)
llist.print_list() # Output: 0 -> 1 -> 3 -> None
로그인 후 복사
효율적인 보존 및 삭제 : 링크 목록에 어떤 위치에 노드를 삽입하거나 삭제하는 데는 몇 가지 포인터를 업데이트하면 필요합니다. 연속 메모리 할당, 링크 된 목록은 특히 스파 스 데이터를 처리 할 때 배열보다 더 메모리 효율적 일 수 있습니다.