Example #1
0
void destroyBranch( WordNode *node )
{
	if( node->left ) {
		destroyBranch( node->left );
		node->left = NULL;
	}
	if( node->right ) {
		destroyBranch( node->right );
		node->right = NULL;
	}
	freeNode( node );
}
Example #2
0
void destroyBranch(struct Cube_t *cube) {
	int m;
	for (m=0;m<UNIQUE_MOVES;m++) {
		if (cube->nextMove[m]) destroyBranch(cube->nextMove[m]);
	}
	GlobalFree(cube);
}
Example #3
0
void destroyBranch(Cube *cube)
{
    int m;
    for (m=0; m<UNIQUE_MOVES; m++) {
        if (cube->nextMove[m]) destroyBranch(cube->nextMove[m]);
    }
    //GlobalFree(cube);
    free(cube);
}
Example #4
0
void pruneClones(struct Cube_t *orig, struct Cube_t *cube) {
	if (cube->depth > orig->depth) {
		if (compareCube(orig, cube)) {
			cube->parent->nextMove[cube->lastMove] = NULL;
			destroyBranch(cube);
			return;
		}
	}
	int m;
	for (m=0;m<UNIQUE_MOVES;m++) {
		if (cube->nextMove[m]) pruneClones(orig, cube->nextMove[m]);
	}
	return;
}