개념
#단일 연결 리스트의 단점
- 한 방향으로만 링크를 따라가기 때문에 다소 불편함
- 링크를 하나 더 추가해서 양방향을 해봄
- prev 개념을 더해준다고 생각
# 구조

#삽입 알고리즘
- node_P는 노드B를 가리키고 node_T는 노드D를 가리키고 있다
- 노드C는 B뒤에 와야한다
- 새로운 노드인 노드 C를 삽압한 후 노드C의 이전 노드인 node_P와 노드 C의 이후 노드인 노드D의 next와 prev 링크를 처리한다
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
new_node.prev = node_P
node_T.prev = new_node
#삭제 알고리즘
def delete_node(del_data):
global node_A
#print(node_A.data)
pre_node = node_A
next_node = pre_node.next
next_next_node = next_node.next
if pre_node.data == del_data:
node1 = next_node
del pre_node
return
while next_node:
#print(next_node.data)
if next_node.data == del_data:
next_next_node = next_node.next
pre_node.next = next_node.next
next_next_node.prev = next_node.prev
del next_node
break
else:
pre_node = next_node
next_node = next_node.next
#print(next_node.data)
코드 전문