Ejemplo n.º 1
0
    def inserir(self, dado):
        inicio=self.get_Inicio()
        novo_no=No()

        if inicio is not None:
        #inserir o segundo
            if(self.get_Ultimo()==None):
                if(int(dado)>int(inicio.get_Dado())):
                    novo_no.set_Dado(dado)
                    novo_no.set_Anterior(inicio)
                    self.set_Ultimo(novo_no)
                    inicio.set_Proximo(novo_no)
                else:
                    novo_no.set_Dado(dado)
                    novo_no.set_Proximo(inicio)

                    inicio.set_Anterior(novo_no)
                    self.set_Ultimo(inicio)
                    self.set_Inicio(novo_no)
            else:
                #Inserir na Ordem crescente
                while inicio.get_Proximo() is not None:
                    if(int(dado)>int(inicio.get_Dado())):
                        inicio=inicio.get_Proximo()
                        if(inicio.get_Proximo()==None):
                            if(int(dado)>int(inicio.get_Dado())):
                                #inserir no ultimo
                                novo_no.set_Dado(dado)
                                novo_no.set_Anterior(inicio)
                                self.set_Ultimo(novo_no)
                                inicio.set_Proximo(novo_no)
                                break
                            else:
                                menor=inicio.get_Anterior()
                                novo_no.set_Dado(dado)
                                novo_no.set_Anterior(menor)
                                novo_no.set_Proximo(inicio)
                                menor.set_Proximo(novo_no)
                                inicio.set_Anterior(novo_no)
                                break
                    else:
                        #inserir no Inicio
                        if(inicio==self.get_Inicio()):
                            novo_no.set_Dado(dado)
                            novo_no.set_Proximo(inicio)

                            inicio.set_Anterior(novo_no)
                            self.set_Inicio(novo_no)
                            break
                        else:
                        #inserir no meio
                            menor=inicio.get_Anterior()
                            novo_no.set_Dado(dado)
                            novo_no.set_Anterior(menor)
                            novo_no.set_Proximo(inicio)
                            menor.set_Proximo(novo_no)
                            inicio.set_Anterior(novo_no)
                            break
        else:
        #Inserir o primeiro
            novo_no.set_Dado(dado)
            self.set_Inicio(novo_no)
        print('O novo elemento cujo dado é ({}), foi adicionado com sucesso!'.format(dado))
Ejemplo n.º 2
0
 if (num == 1):
     ultimoListaEnca = inicio.get_Dado()
 inicio = inicio.get_Proximo()
 if (num == 4):
     novo_no = No()
     if (list2.get_Inicio() == None):
         novo_no.set_Dado(inicio.get_Dado())
         novo_no.set_Assinatura(inicio)
         novo_no.set_UltimoListaEnca(ultimoListaEnca)
         list2.set_Inicio(novo_no)
         #print('ini ',inicio.get_Dado(),' novo ',novo_no)
     elif (list2.get_Ultimo() == None):
         novo_no.set_Dado(inicio.get_Dado())
         novo_no.set_Assinatura(inicio)
         novo_no.set_UltimoListaEnca(ultimoListaEnca)
         novo_no.set_Anterior(list2.get_Inicio())
         list2.get_Inicio().set_Proximo(novo_no)
         list2.set_Ultimo(novo_no)
         #print('seg ',inicio.get_Dado(),' novo ',novo_no)
     else:
         novo_no.set_Dado(inicio.get_Dado())
         novo_no.set_Assinatura(inicio)
         novo_no.set_UltimoListaEnca(ultimoListaEnca)
         novo_no.set_Anterior(list2.get_Ultimo())
         list2.get_Ultimo().set_Proximo(novo_no)
         list2.set_Ultimo(novo_no)
     num = 0
 else:
     num += 1
 if (inicio.get_Proximo() == None):
     novo_no = No()