Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
jefferson2008.1

Arvore binaria em c

Recommended Posts

estou com problema no meu codigo

na função listarPorNivel

ele deve listar os elementos no nivel determinado pelo usuario

porém quando peço para listar no nivel 1

ele não lista nada

no nivel 2 ele lista o elemento do nivel 1

no nivel 3 ele lista os elementos do nivel 2 e assim por diante

ja mudei de toda forma mas não consegui conserta isso

ajuda ai pessoal

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>

typedef struct NO{
int n;
char chave[20];
struct NO *esq,*dir;
struct NO *proxcor;
struct NO *proxcidade;
struct NO *proxmodelo;
struct NO *volta;
}no;
void inicializar(no **celula)
{
(*celula)->proxcor =NULL;
(*celula)->proxcidade = NULL;
(*celula)->proxmodelo=NULL;
(*celula)->esq=NULL;
(*celula)->dir=NULL;
(*celula)->volta =NULL;
}

// PROCEDIMENTO PARA AUXILIAR O INSERIR
void inserirno(char informacao[20],no **celula)
{

if (*celula ==NULL)
{
*celula =(no*)malloc(sizeof(no));
strcpy((*celula)->chave,informacao);
(*celula)->esq =NULL;
(*celula)->dir =NULL;
return;
}
if(strcmp(informacao,(*celula)->chave)<0){
inserirno(informacao,&(*celula)->esq);
return;
}
if(strcmp(informacao,(*celula)->chave)>0){
inserirno(informacao,&(*celula)->dir);
}
}

//PROCEDIMENTO PARA INSERIR

void inserir(no **celula)
{
int v, i;
char informacao[20];
printf("quantos cadastro deseja fazer? ");
scanf("%d",&v);
for (i=0;i<v;i++)
{
printf("entrada: ");
scanf("%s",&informacao[0]);
inserirno(informacao,&(*celula));
}
}

// PROCEDIMENTO PARA LISTAR EM ORDEM
void em_ordem ( no **mod) {
if (*mod) {
em_ordem (&(*mod)->esq);
printf ("%s\n",(*mod)->chave);
em_ordem (&(*mod)->dir);
}
}

// PROCEDIMENTO PARA LISTAGEM POR NIVEL

void listarpornivel(no **celula,int nivel)
{
printf("ok");
if ((nivel == 1) && (*celula !=NULL))
{
printf("ok");
printf("%s\n",(*celula)->chave);
}
else
{
if ((*celula) ->esq != NULL)
{
listarpornivel(&(*celula)->esq ,nivel-1);
}
if ((*celula)->dir != NULL)
{
listarpornivel(&(*celula)->dir ,nivel - 1);
}
}
}

// FUNÇÃO PRINCIPAL

int main()
{
char opcao ,informacao[20] ;
no *mod,*c,*cid;
int nivel;
//PARA INSERIR MODELO
mod = (no*)malloc(sizeof(struct NO));
inicializar(&mod);
inserir(&mod);
//PARA INSERIR COR
c = (no*)malloc(sizeof(struct NO));
inicializar(&c);
inserir(&c);
//PARA INSERIR CIDADE
cid = (no*)malloc(sizeof(struct NO));
inicializar(&cid);
inserir(&cid);
printf("nivel");
scanf("%d",&nivel);
listarpornivel(&mod,nivel);


opcao ='o';
while (opcao != 'e')
{
scanf("%s%s",&opcao,&informacao[0]);
if ((opcao == 'p') && (informacao[0] == 'm'))
{
em_ordem(&mod);
}
if ((opcao =='p') && (informacao[0] =='c' ))
{
em_ordem(&c);
}
if ((opcao == 'p') && (informacao[0] =='t'))
{
em_ordem(&cid);
}
}
return 0;
}

:cool:

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • galera me ajuda ai

    não estou entendendo o que o professor pede na

    consulta 3 e 4 deste trabalho ai em baixo(link)

    peço a quem entender do assunto(arvores binarias)

    me ajudar a entender o que o professor pede

    o trabalho ta no link

    * trab2.2008.2.pdf: Segundo Trabalho Pratico

    https://disciplinas.dcc.ufba.br/MATA40/SemestreLetivo20082

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×