int main (void)
{
	PtABPNode abp1, abp2, abp3; int st; char filename[21];

	system ("clear");
	printf ("\nLer arvore binaria de pesquisa do ficheiro\n");
	do
	{
  		printf ("Nome do ficheiro -> ");
		st = scanf ("%20[^\n]", filename);
		scanf ("%*[^\n]"); scanf ("%*c");
	} while (st == 0);

	abp1 = ABPCreateFile (filename);

	if (ABPEmpty (abp1)) printf ("\nArvore vazia!\n");

	printf ("\nNumero de nos da arvore = %d\n", ABPSize (abp1));

	printf ("\nAltura da arvore = %d\n", ABPHeight (abp1));

	printf ("\nArvore listada em pre-ordem (versao recursiva)\n");
	ABPPreOrderRec (abp1);
	printf ("\n");

	printf ("\nArvore listada em ordem (versao recursiva)\n");
	ABPInOrderRec (abp1);
	printf ("\n");

	printf ("\nArvore listada em pos-ordem (versao recursiva)\n");
	ABPPostOrderRec (abp1);
	printf ("\n");

	printf ("\nArvore listada em pre-ordem (versao repetitiva)\n");
	ABPPreOrderRep (abp1);
	printf ("\n");

	printf ("\nArvore listada em ordem (versao repetitiva)\n");
	ABPInOrderRep (abp1);
	printf ("\n");

	printf ("\nArvore listada em pos-ordem (versao repetitiva)\n");
	ABPPostOrderRep (abp1);
	printf ("\n");

	printf ("\nArvore listada por niveis\n");
	ABPByLevel (abp1);
	printf ("\n");

	printf ("\nArvore listada hierarquicamente\n");
	ABPDisplay (abp1);
	printf ("\n");

	printf ("\nBalanceamento da arvore\n");
	abp2 = ABPBalance (abp1);

	printf ("\nNumero de nos da arvore = %d\n", ABPSize (abp2));

	printf ("\nAltura da arvore = %d\n", ABPHeight (abp2));

	printf ("\nArvore listada hierarquicamente\n");
	ABPDisplay (abp2);
	printf ("\n");
	
	printf ("\nCopia da arvore\n");
	abp3 = ABPCopy (abp1);

	printf ("\nNumero de nos da arvore = %d\n", ABPSize (abp3));

	printf ("\nAltura da arvore = %d\n", ABPHeight (abp3));

	printf ("\nArvore listada em ordem (versao recursiva)\n");
	ABPInOrderRec (abp3);
	printf ("\n");

	printf ("\nDestruir as arvores e terminar o programa\n\n");
	ABPDestroy (&abp1);
	ABPDestroy (&abp2);
	ABPDestroy (&abp3);

	return 0;
}
示例#2
0
int main (void)
{
	PtABPNode abp1, abp2, abp3; int st; char filename[21];

	system ("clear");
	printf ("\nLer arvore binaria de pesquisa do ficheiro - Read binary search tree from a text file\n");
	do
	{
  		printf ("Nome do ficheiro (Filename) -> ");
		st = scanf ("%20[^\n]", filename);
		scanf ("%*[^\n]"); scanf ("%*c");
	} while (st == 0);

	abp1 = ABPCreateFile (filename);

	if (ABPEmpty (abp1)) printf ("\nArvore vazia! Empty tree!\n");

	printf ("\nNumero de nos da arvore (node number) = %d\n", ABPSize (abp1));

	printf ("\nAltura da arvore (tree height) = %d\n", ABPHeight (abp1));

	printf ("\nArvore listada em pre-ordem (versao recursiva)\n");
	printf ("Tree listed using a pre-order traversal (recursive version)\n");
	ABPPreOrderRec (abp1);
	printf ("\n");

	printf ("\nArvore listada em ordem (versao recursiva)\n");
	printf ("Tree listed using a in-order traversal (recursive version)\n");
	ABPInOrderRec (abp1);
	printf ("\n");

	printf ("\nArvore listada em pos-ordem (versao recursiva)\n");
	printf ("Tree listed using a post-order traversal (recursive version)\n");
	ABPPostOrderRec (abp1);
	printf ("\n");

	printf ("\nArvore listada em pre-ordem (versao repetitiva)\n");
	printf ("Tree listed using a pre-order traversal (repetitive version)\n");
	ABPPreOrderRep (abp1);
	printf ("\n");

	printf ("\nArvore listada em ordem (versao repetitiva)\n");
	printf ("Tree listed using a in-order traversal (repetitive version)\n");
	ABPInOrderRep (abp1);
	printf ("\n");

	printf ("\nArvore listada em pos-ordem (versao repetitiva)\n");
	printf ("Tree listed using a post-order traversal (repetitive version)\n");
	ABPPostOrderRep (abp1);
	printf ("\n");

	printf ("\nArvore listada por niveis - Tree listed using a traversal by level\n");
	ABPByLevel (abp1);
	printf ("\n");

	printf ("\nArvore listada hierarquicamente - Tree listed hierarchically\n");
	ABPDisplay (abp1);
	printf ("\n");

	printf ("\nBalanceamento da arvore Balancing the tree\n");
	abp2 = ABPBalance (abp1);

	printf ("\nNumero de nos da arvore (node number) = %d\n", ABPSize (abp2));

	printf ("\nAltura da arvore (tree height) = %d\n", ABPHeight (abp2));

	printf ("\nArvore listada hierarquicamente - Tree listed hierarchically\n");
	ABPDisplay (abp2);
	printf ("\n");
	
	printf ("\nCopia da arvore - Copy the tree\n");
	abp3 = ABPCopy (abp1);

	printf ("\nNumero de nos da arvore (node number) = %d\n", ABPSize (abp3));

	printf ("\nAltura da arvore (tree height)= %d\n", ABPHeight (abp3));

	printf ("\nArvore listada hierarquicamente - Tree listed hierarchically\n");
	ABPDisplay (abp3);
	printf ("\n");

	printf ("\nArvore listada em ordem (versao recursiva)\n");
	printf ("Tree listed using a in-order traversal (recursive version)\n");
	ABPInOrderRec (abp3);
	printf ("\n");

	printf ("\nDestruir as arvores - Releasing the trees\n\n");
	
	ABPDestroy (&abp1);
	ABPDestroy (&abp2);
	ABPDestroy (&abp3);

	return 0;
}