Пример #1
0
    def inserir(self, index, Novoelemento):
        # cria o nó com o novo elemento
        no = No(Novoelemento)

        #Se quiser inserir na primeira posição da lista
        if index == 0:
            # O item de inicio da lista (não atualizada) se torna o no.proximo
            no.proximo = self.inicio
            #Atualiza o inicio da lista para o nó que entrou
            self.inicio = no
        #se quiser inserir numa posição diferente de 0
        else:
            #ponteiro começa na primeira posição
            #ponteiro = self.inicio
            #O -1 é para que possamos inserir após seu precessor, no local correto da lista
            #for item in range(index - 1):
            #se o ponteiro não está numa posição vazia(none), último da lista
            #if ponteiro:
            #O ponteiro "anda" para o próximo da lista
            #ponteiro = ponteiro.proximo
            #else:
            #raise IndexError("Index fora do intervalo da Lista")

            #A parte acima do código virou a função a parte getNo()
            #O -1 garante que o item a ser incerido fique na posição correta
            ponteiro = self.getNo(index - 1)
            #garante que os próximos valores serão "apontados"
            no.proximo = ponteiro.proximo
            ponteiro.next = no

        #aumenta o tamanho da lista em 1
        self.tamanho += 1
Пример #2
0
 def inserir(self, index, Novoelemento):
     no = No(Novoelemento)
     if index == 0:
         no.proximo = self.inicio
         self.inicio = no
     else:
         ponteiro = self.getNo(index-1)
         no.proximo = ponteiro.proximo
         ponteiro.next = no
     self.tamanho += 1
    def addFirst(self, dado):
        no = No(dado)

        if self.head == None:
            self.tail = no
        else:
            no.proximo = self.head
            self.head.anterior = no

        self.head = no
        no.indice += 1
Пример #4
0
    def indexInsercaoOrdem(self, elemento):
        no = No(elemento)
        posicao = 0
        ponteiro = self.inicio
        try:
            prox = ponteiro.proximo
        except:
            prox = None

        #se a lista estiver vazia
        if self.inicio == None:
            self.inicio = no
            self.tamanho += 1
            return True

        #se o o dado for menor de todos, primeiro da lista
        if elemento < ponteiro.dado:
            no.proximo = self.inicio
            self.inicio = no
            self.tamanho += 1
            return True

        else:
            while True:
                
                #se for o último da lista
                if prox == None:
                    ponteiro.proximo = no
                    self.tamanho +=1
                    return True

                if elemento <= prox.dado:
                    ponteiro.proximo = no
                    no.proximo = prox
                    self.tamanho +=1
                    return True

                if elemento > prox.dado:
                    ponteiro = prox
                    prox = prox.proximo
                    posicao += 1
Пример #5
0
    def inserir_qualquer_lugar(self, valor, valor_busca):
        no = self.inicio
        novo_valor = No(valor)

        while no is not None:
            if no.valor == valor_busca and no.proximo == None:
                no.proximo = novo_valor
                novo_valor.anterior = no
                self.quantidade += 1
                break
            elif no.valor == valor_busca and no.proximo is not None:
                proximo_no = no.proximo
                novo_valor.anterior = no
                no.proximo = novo_valor
                novo_valor.proximo = proximo_no
                self.quantidade += 1
                break
            elif no.valor != valor_busca and no.proximo == None:
                print("Erro")
                return "Erro"
            no = no.proximo
	def inserirInicio(self, info):
		temp = No(info)
		temp.proximo = self.inicio
		self.inicio = temp