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'