iagoac / mc202

Disciplina MC202 - Estruturas de Dados
GNU General Public License v3.0
17 stars 13 forks source link

Problema apenas no teste 15 #109

Closed Rebeca-Lie-Yatsuzuka-Silva closed 3 years ago

Rebeca-Lie-Yatsuzuka-Silva commented 4 years ago

Professor, você poderia, dos testes fechados, fornecer pelo menos a entrada do teste 15? Apenas nele o meu programa está dando a mensagem de erro: "erro de processamento tamanho máximo da pilha ou da memória dinâmica excedido, ou talvez apontador inválido (código 139)"

iagoac commented 4 years ago

@Rebeca-Lie-Yatsuzuka-Silva de qual laboratório?

Rebeca-Lie-Yatsuzuka-Silva commented 4 years ago

O último.

iagoac commented 4 years ago

Então... ele é meio grandinho, não tem como copiar e colar a entrada aqui não.
Vou anexar o arquivo de entrada.

teste 15

Note que o arquivo realmente é bem grande e, caso você esteja utilizando uma estrutrua de dados ou método inadequados, realmente vai estourar a pilha de memória ou alguma coisa do tipo.

TauaneLemeB1 commented 4 years ago

@iagoac criar duas arvores simultâneas seria um método inadequado?

iagoac commented 4 years ago

O susy não tem lá muita memória disponível para os usuários.
Desta forma, acredito que seja melhor você ler os dados da primeira pessoa, criar a árvore e salvar a altura.
Logo após, você deleta esta árvore e começa a ler os dados da segunda pessoa para, também, montar sua árvore.

Note que é muito importante você economizar espaço em cada nó da árvore. Caso você utilize um tipo de variável que precise de muitos bits (um long long int, por exemplo) pode ser que dê problemas com a memória do Susy.

TauaneLemeB1 commented 4 years ago

Beleza! Vou deletar a primeira árvore para inserir a outra. No caso estou usando int mesmo.

ianloron00 commented 4 years ago

Eu fiz isso, mas agora estou obtendo outra mensagem:

Teste 01: resultado correto
Teste 02: resultado correto
Teste 03: resultado correto
Teste 04: resultado correto
Teste 05: resultado correto
Teste 06: resultado correto
Teste 07: resultado correto
Teste 08: resultado correto
Teste 09: resultado correto
Teste 10: resultado correto
Teste 11: resultado correto
Teste 12: resultado correto
Teste 13: resultado correto
Teste 14: resultado correto
Teste 15: erro de processamento 

    tempo máximo de processamento excedido (código 137)

Creio que esteja o mais otimizado possível para uma árvore nao balanceada... Vou precisar balanceá-la? Ou existe algo que eu posso melhorar mesmo sendo nao balanceada?

iagoac commented 4 years ago

@ianloron00 tudo o que eu consigo lhe dizer é que seu código não é eficiente da maneira que você diz.

Vou precisar balanceá-la?

Não é necessário balancear a árvore. Aliás, se você fizer uma árvore balanceada, a resposta será errada.

Ou existe algo que eu posso melhorar mesmo sendo nao balanceada?

Provavelmente a sua função de inserção na árvore pode ser melhorada. Mesmo sem ver código nenhum, acredito que ela é que seja a maior responsável pelo tempo gasto para execução de seu algoritmo.