Example #1
0
  def Insert(self, data, flag = 1):
    node = CNode(data,None,None)
    if self.__size == 0:
      self.__current = self.__first = self.__last = node
      self.__size += 1
    elif flag == 0:
      self.__size += 1
      #####################
      #add a la izquierda #
      #####################
      #como insertamos a izquierda, el nodo derecho sera current
      node.setRight(self.__current)
      #cogemos el nodo izquierdo a current
      if self.__current != self.__first:
	leftApunt = self.__current.getLeft()
	#se lo asignamos al node
	node.setLeft(leftApunt)
	#asignamos node al que antes era nodo izquierdo de current
	leftApunt.setRight(node)
      #asignamos node como nodo a la izquierda de current
      self.__current.setLeft(node)
      #y asignamos current al nuevo node
      if self.__current == self.__first:
	self.__current = node
	self.__first = self.__current
      else:
	self.__current = node
    elif flag == 1:
      self.__size += 1
      #####################
      #add a la derecha   #
      #####################
      #como insertamos a la derecha, el nodo izquierdo sera current
      node.setLeft(self.__current)
      if self.__last != self.__current:
	rightApunt = self.__current.getRight()
	#se lo asignamos a node
	node.setRight(rightApunt)
	#asignamos node al que antes era nodo derecho de current
	rightApunt.setLeft(node)
      #asignamos node como nodo a la derecha de current
      self.__current.setRight(node)
      #y asignamos current al nuevo node
      if self.__current == self.__last:
	self.__current = node
	self.__last = self.__current
      else:
	self.__current = node
    else:
      print 'Flag erroneo'