노드 클래스
class Node:
def __init__(self, data):
self.data = data
self.next = None
Single Linked List 클래스
class SLL:
def __init__(self, data): #생성자
self.head = Node(data)
def append(self, data): #노드 추가
current_node = self.head
while current_node.next is not None:
current_node = current_node.next
current_node.next = Node(data)
def print(self): #노드 출력
current_node = self.head
while current_node is not None:
print(current_node.data)
current_node = current_node.next
def get_index(self, index): #노드 인덱스 알아내기
conut = 0
node = self.head
while conut < index:
conut += 1
node = node.next
return node
def insert_node(self, index, value): #노드 삽입
new_node = Node(value)
if index == 0:
new_node.next = self.head
self.head = new_node
return
previous_node = self.get_index(index-1)
next_node = previous_node.next
previous_node.next = new_node
new_node.next = next_node
def delete_node(self, index): #노드 삭제
if index == 0:
self.head = self.head.next
return
node = self.get_index(index-1)
node.next = node.next.next
테스트 결과
노드 추가
노드 삭제
노드 삽입
'자료구조 & 알고리즘 > 자료구조' 카테고리의 다른 글
[자료구조] 해시 테이블 (0) | 2023.09.05 |
---|---|
[자료구조] 배열과 배열 기반의 집합 (1) | 2023.08.09 |
[JAVA] 큐(Queue) / 링 버퍼(Ring Buffer) / 데크(Deque) (0) | 2023.01.29 |
[JAVA] 스택(Stack) (0) | 2023.01.28 |
[JAVA] 클래스 배열 (0) | 2023.01.25 |