Exemple #1
0
void BSTDispose (tBSTNodePtr *RootPtr) {
/*   ----------
** Zru¹í celý binární vyhledávací strom a korektnì uvolní pamì».
**
** Po zru¹ení se bude BVS nacházet ve stejném stavu, jako se nacházel po
** inicializaci. Tuto funkci implementujte rekurzivnì bez deklarování pomocné
** funkce.
**/
  if(*RootPtr!=NULL){
    BSTDispose(&((*RootPtr)->LPtr));
    BSTDispose(&((*RootPtr)->RPtr));
    free(*RootPtr);
    *RootPtr=NULL;
  }
}
Exemple #2
0
void BSTDispose (tBSTNodePtr *RootPtr)
{
	if ( *RootPtr != NULL )
	{
		/* Ruseni leveho podstromu */
		BSTDispose ( &( *RootPtr ) -> LPtr ) ;

		/* Ruseni praveho podstromu */
		BSTDispose ( &( *RootPtr ) -> RPtr ) ;

		/* Uvolneni ukazatele */
		free ( *RootPtr ) ;

		/* Nastaveni ukazatele na NULL - stav po inicializaci */
		( *RootPtr ) = NULL ;
	}
}
Exemple #3
0
void BSTDispose (tBSTNodePtr *RootPtr) {
/* Korektnì zru¹í celý binární vyhledávací strom. Zvolte nejvýhodnìj¹í
** druh rekurzívního prùchodu stromem. Nedeklarujte ¾ádné pomocné procedury
** nebo funkce.
** POZOR: Vzhledem k jisté slo¾itosti rekurzívního volání této fce zde uvádím
** pøíklad jak funkci zavolat (kdy¾ jsme pøijali RootPtr jako ukazatel na 
** ukazatel). Správné zavolání napø. na levý podstrom:
** BSTDispose(&(*RootPtr)->LPtr).
*/

  if((*RootPtr)){
    BSTDispose(&(*RootPtr)->LPtr);
    BSTDispose(&(*RootPtr)->RPtr);
    free(*RootPtr);
    *RootPtr = NULL;
  }

}
Exemple #4
0
void BSTDispose (tBSTNodePtr *RootPtr) {	
/*   ----------
** Zru¹í celý binární vyhledávací strom a korektnì uvolní pamì».
**
** Po zru¹ení se bude BVS nacházet ve stejném stavu, jako se nacházel po
** inicializaci. Tuto funkci implementujte rekurzivnì bez deklarování pomocné
** funkce.
**/
	
	if (*RootPtr != NULL) {
		// posunuti se do prave vetve
			BSTDispose(&(*RootPtr)->RPtr);
		// posunuti se do leve vetve
			BSTDispose(&(*RootPtr)->LPtr);
		// zruseni prvku
		// uvolneni pameti
		free(*RootPtr);
		*RootPtr = NULL;
		return;
	}
}
Exemple #5
0
int test_BSTDispose(tBSTNodePtr* TempTree)		{
	solved=TRUE;
	BSTDispose(TempTree);
	if (!solved)	{
		printf("Operace BSTDispose() nebyla implementovana \n");
		return(FALSE);
	}
	else	{
		Print_tree(*TempTree);
		return(TRUE);
	}
}