개념

#단일 연결 리스트의 단점


# 구조


#삽입 알고리즘

  1. node_P는 노드B를 가리키고 node_T는 노드D를 가리키고 있다
  2. 노드C는 B뒤에 와야한다
  3. 새로운 노드인 노드 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)

코드 전문