Example #1
0
TArvore * CriaArvore(char * S1, char * S2){
	int Cont, Hue;
	TArvore * Axu = NULL;
	char Ar1[MAX_TAM], Ar2[MAX_TAM];
	
	if( S2[0] != '\0'){
		
		Axu = (TArvore *) malloc( sizeof(TArvore) );
	
		Axu->Letra = S1[0];
		Axu->esq = NULL;
		Axu->dir = NULL;
	
		Cont = 0;
		
		while( S2[Cont] != '\0' && S2[Cont] != S1[0]){
			Ar1[Cont] = S2[Cont];
			Cont++;
		}
		
		Ar1[Cont] = '\0';
		
		Hue = 0;
		
		if( S2[Cont++] != '\0' )
			while( S2[Cont] != '\0' ){
				Ar2[Hue++] = S2[Cont];
				Cont++;
			}
		
		Ar2[Hue] = '\0';
		
		if( *S1 != '\0')
			Axu->esq = CriaArvore( &S1[1], Ar1);
		if( *S1 != '\0')
			Axu->dir = CriaArvore( &S1[ Cont - Hue], Ar2);

	
	}
	
	return Axu;
	
}
void InsereNaArvoreRN(ArvoreRN* arvore, char* string){
	
	FILE* arquivo;

	arquivo = fopen(string,"r");
	if(!arquivo){
		
		printf("Erro ao abrir o arquivo %s! Encerrando Programa...\n", string);
		exit(1);
	}
	
	CriaArvore(arvore);
	
	InsereArquivoArvore(arvore,arquivo);
	fclose(arquivo);
	
}
Example #3
0
int main(){
	int ContVez, Vez, Nos, ContNos, Cont1;
	char S2[MAX_TAM], S1[MAX_TAM];
	TArvore * Raiz = NULL;
	
	scanf("%d", &Vez);
	
	for(ContVez=0; ContVez < Vez; ContVez++){

		scanf("%d %s %s", &Nos, S1, S2);

		Raiz = CriaArvore( S1, S2);
		
		ImprimePre( Raiz );
	
		printf("\n");
		
		
	}	
		
	
	return 0;
}