Data Structure & Algorithm
파이썬으로 연결 리스트(Linked List) 구현해보기
by shinbian11
2020. 3. 25.
class Node:
def __init__(self, data, next = None):
self.data = data
self.next = next
def init_list():
global node_A
node_A = Node("A")
node_B = Node("B")
node_D = Node("D")
node_E = Node("E")
node_A.next = node_B
node_B.next = node_D
node_D.next = node_E
def insert_node(data):
global node_A
new_node = Node(data) # 새로운 객체 생성
node_P = node_A
node_T = node_A
while node_T.data <= data: #삽입할 위치를 탐색
node_P = node_T
node_T = node_T.next
new_node.next = node_T
node_P.next = new_node
def delete_node(del_data):
global node_A
pre_node = node_A
next_node = pre_node.next
if pre_node.data == del_data: #삭제하고자 하는 노드가 첫번째 노드일때
node_A = next_node
del pre_node
return
while next_node: #삭제하고자 하는 노드가 첫번째 노드가 아닐때
if next_node.data == del_data:
pre_node.next = next_node.next
del next_node
break
pre_node = next_node
next_node = next_node.next
def print_list():
global node_A
node = node_A
while node:
print(node.data)
node = node.next
if __name__ == '__main__':
print('연결 리스트 초기화 후! ')
init_list()
print_list()
print('Node C를 추가한 후')
insert_node("C")
print_list()
print('Node D를 삭제한 후')
delete_node("D")
print_list()
print('Node E를 삭제한 후')
delete_node("E")
print_list()