Jump to content
Fórum Script Brasil
  • 0

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


ppt_mac
 Share

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...