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

Preciso De Ajuda Na Criação De Uma Funçao Para Tree


ppt_mac

Pergunta

typedef struct Node{

int elem;

struct Node *esq,*dir;

}*Tree;

Presciso desta função que preenche o array com os elementos da arvore de procura ordenados por ordem crescente.Esta funçao tem ainda um parametro (entrada e saida)

que indica qual a primeira posicão livre do array.

void treeToArray(Tree t,int A[],int *i)

Obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Voce quer algo assim:

#include <stdio.h>
#include <stdlib.h>
const int ROOT = -1;
int id_last = 0;
struct tree{
 int id,father,content;
};
tree allocIn(int value,int father){
 tree temp;
 temp.id = id_last;
 temp.father = father;
 temp.content = value;
 return tree;
 id_last++;
}
tree* tree2array(int father_id){
 int i = 0;
 int j = 0;
 tree *temp;
 while(i < id_last){
  if(temp[i].father == father_id){
   j++;
  }
  i++;
 }
 temp = (tree)malloc(sizeof(tree)*j);
 i = 0;
 j = 0;
 while(i < id_last){
  if(temp[i].father == father_id){
   temp[j++] = temp[i];
  }
 i++;
 }
 return temp;
}

Desculpas, o codigo

não ta muito bom...

espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado!!

Mas acho que consegui fazer de outra maneira, visto que se trata de uma arvore de procura.A sub-arvore da esq contem elementos menor que a raiz e na sub-arvore dir tem elementos maiores. Logo acho que basta fazer uma passagem inorder dessa arvore. Fica algo assim

void treeToArray(Tree t,int A[],int *i){

if(!t){

inorder(t->esq,A,i);

A[*i] = t->elem;

(*i)++;

inorder(t->dir,A,i);

}

}

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...