Exemple #1
0
/******************************************************************************************
* decrescente()
*
* Arguments:    h:              ponteiro para um no da arvore
*               (*visit)(Item): ponteiro para funcao
*
* Returns: void
* Description:  imprime a arvore por ordem decrescente
*****************************************************************************************/
void decrescente(link h, void (*visit)(Item)){
    if (h == NULL)
        return;
    decrescente(h->l, visit);
    visit(h->item);
    decrescente(h->r, visit);
}
Exemple #2
0
int main(int argc, char *argv[])
{
	if(argc < 3)
	{
		printf("Usage : ./maker.out <qtd> <modo>\n");
		return -1;
	}
	string_array *strings;
	strings = (string_array*)malloc(3300000*sizeof(string_array));
	int tam = atoi(argv[1]);
	int modo = atoi(argv[2]);
	int i;
	if(modo == 1)
	{
		crescente(strings,tam);
	}
	else if(modo == 2)
	{
		decrescente(strings,tam);
	}
	else
	{
		crescente(strings,tam/2);
		decrescente(strings + tam/2,tam/2);
 		shuffle(strings,tam);
	}
	for(i=0;i<tam;i++)
	{
		printf("%s\n",strings[i].dado);
	}
	return 0;
}
Exemple #3
0
/******************************************************************************************
* AVLimprime()
*
* Arguments:    head:       ponteiro para a cabeca da arvore AVL
*               (*visit)(Item): ponteiro para funcao
*
* Returns: void
* Description:  chama funcao recursiva que imprimira a arvore
*****************************************************************************************/
void AVLimprime(link head, void (*visit)(Item)){
    decrescente(head, visit);
}