Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisa em arvore


Blackmage

Pergunta

Boa tarde sirs

Preciso de ajuda para resolver o seguinte exercício:

Ler do arquivo abaixoos dados

9 0
7 -1
2 1
3 -1 -1
1 -1 1
6 1 -1
4 1 1

que representam a arvore

arvore.png

o programa deve ler um valor digitado pelo teclado, verificar o nível e a posição desse valor na arvore.

ex

valor______nível________posição

7__________2____________1

2__________2____________2

1__________3____________2

minha principal dúvida é a forma em q eu devo organizar os dados dentro de uma variavel

Editado por Blackmage
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

sua duvida é como armazenar os dados na arvore?? ou é como fazer a busca??

imagino q a arvore você sabe fazer. pra fazer a busca, você usaria uma funcao recursiva.

o q significa essa posicao?? significa se esta a esquerda ou a direita, seria isso??

o q você faria, seria receber o nivel e a posicao como parametros nessa funcao recursiva, de preferencia por referencia. ai você altera os valores deles de acordo com o nivel e a posicao. ai quando você encontrar a funcao retorna true.

Link para o comentário
Compartilhar em outros sites

  • 0

Então, eu consegui fazer, mas acho que está de um jeito diferente do que o professor quer, pois não estou utilizando os 1 -1 para nada

#include <stdio.h>
#include <stdlib.h>
int main ()
{
    FILE *fp;
    int i=0,pos=1,nvl=1,pot=2;
    char k,str[10][10];
    if ((fp=fopen("arquivo.txt","r"))==NULL)
    {
           puts ("O arquivo não pode ser aberto.\n");
           exit (1);
    }
    for (i=0;str[i][0]!=EOF;i++)
          fgets(str[i],9,fp);
    puts ("Digite a chave que deseja buscar.");
    k=getchar();
    i=0;

    while (str[i][0])
    {
    if (k==str[i][0]) printf ("A chave %c esta no nivel %d e na posicao %d\n",k,nvl,pos);
    i++;
    pos++;
    if (i+1==pot){
          nvl++;
          pot*=pot;
          pos=1;
          }
    }
    system ("pause");
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...