def divisao(self, coluna, valor, valores=None):
     if valores == None:
         valores = self.dados()
     escolhidos = []
     outros = []
     for v in valores:
         if v[coluna] == valor:
             escolhidos.append(v)
         else:
             outros.append(v) 
     d = []
     g1 = Galho(coluna, valor, self.nvl)
     g1.registrarValoresInteressantes(escolhidos)
     g1.registrarValoresNaoInteressantes(outros)
     d.append(g1)
     return d
    def nova_divisao(self, coluna, valor, galhos):
        self.nvl += 1
        for galho in galhos:
            valores = []
            if len(galho.filhos) > 0:
                valores = galho.filhos
            else:
                valores = galhos

            for filho in valores:
                escolhidos = []
                outros = []
                g1 = Galho(coluna, valor, self.nvl)
                valores = filho.interessa
                for v in valores:
                    if v[coluna] == valor:
                        escolhidos.append(v)
                    else:
                        outros.append(v)
                g1.registrarValoresInteressantes(escolhidos)
                g1.registrarValoresNaoInteressantes(outros)
                galho.adicionarFilho(g1)

        for galho in galhos:
            valores = []
            if len(galho.filhos) > 0:
                valores = galho.filhos
            else:
                valores = galhos

            for filho in valores:
                escolhidos = []
                outros = []
                g1 = Galho(coluna, valor, self.nvl)
                valores = filho.n_interessa
                for v in valores:
                    if v[coluna] == valor:
                        escolhidos.append(v)
                    else:
                        outros.append(v)
                g1.registrarValoresInteressantes(escolhidos)
                g1.registrarValoresNaoInteressantes(outros)
                galho.adicionarFilho(g1)                
        return galhos