Python 如何在已排序的双链接列表中创建添加和删除函数

Python 如何在已排序的双链接列表中创建添加和删除函数,python,list,doubly-linked-list,sortedlist,Python,List,Doubly Linked List,Sortedlist,下面是三个类:节点、双链表和排序列表,它们在双链表上实现。这是我的密码: class DLLNode(object): def __Init__ (self, data, prev_node=None, next_node=None): self.data=data self.prev_node=prev_node self.next_node=next_node def __str__(self): return str(self.data) cl

下面是三个类:节点、双链表和排序列表,它们在双链表上实现。这是我的密码:

 class DLLNode(object):
  def __Init__ (self, data, prev_node=None, next_node=None):
    self.data=data
    self.prev_node=prev_node
    self.next_node=next_node

  def __str__(self):
    return str(self.data)

class DoublyLinkedList(object):
  def __init__(self, head=None, tail=None):
    self.head=head
    self.tail=tail
    self.size=0

  def add_to_head(self, data):
    newNode = DLLNode(data)
    if self.head==None:
      self.head=self.tail=newNode
      self.head.prev_node=self.tail.next_node=None
    else:
      self.head.prev_node=newNode
      newNode.next_node=self.head
      self.head=newNode

  def add_to_tail(self, data):
    newNode=DLLNode(data)
    if self.head==None:
      self.head=self.tail=newNode
      self.head.prev_node=self.tail.next_node=None
    else:
      self.tail.next_node=newNode
      newNode.prev_node=self.tail
      self.tail=newNode
      self.tail.next_node=None

  def remove_head(self):
    node=self.head
    if self.head==self.tail:
      self.prev_node=self.next_node=self.head=self.tail=None
      return
    if self.head!=self.tail:
      node=node.next_node
      node.prev_node=None
      self.head=node

  def remove_tail(self):
    node=self.tail
    if self.head==self.tail:
      self.prev_node=self.next_node=self.head=self.tail=None
      return
    if self.head!=self.tail:
      self.tail=node.prev_node
      self.tail.next_node=None


  def index(self,element):
    current = self.head
    while current != None:
      if current.data == element:
      return current.position
    else:
      current = current.next
      return -1
class SortedList(object):
  def __init__(self, sequence = []):
    if len(sequence)==0:
      self.head = None
      self.tail = None
    else:
      cur_node = None
      prev_node = None
      sequence.sort()
      sequence.reverse()
      for element in sequence:
        prev_node = cur_node
        cur_node = DLLNode(element, cur_node, prev_node)
        self.head = cur_node
        self.tail = DLLNode(sequence[0])

对于排序列表类,我需要创建一个add和remove函数。然而,我真的不知道怎么做。有人能告诉我吗?

你所提供的代码是不完整的,考虑更新它。第三类我真的不知道怎么做。这更多的是一个关于算法的问题,在插入后保持排序列表排序。你的课本或课堂讲课怎么说?