D
Daniel
I need to build the maze board(like 2d array) using a tree. But I find
that my buildTree function doesn't work. Could anyone give me some
hints on debugging it? Thanks
bool BuildTree(TreeNodePtr *T, int x, int y)
{ if (boardSize == 0) //boardSize is a global variable
{ return TRUE;
}
else
{
if (x > boardSize || y > boardSize)
{ return FALSE;
}
else
{ TreeNodePtr p = (TreeNodePtr)malloc(sizeof(struct TreeNode));
p->left = NULL;
p->right = NULL;
p->data.x = x;
p->data.y = y;
p->data.type = GetStepType(itemList, x, y); //GetStepType just
return a int
if (!BuildTree(&(p->left), x, y+1))//Build left tree
{ return FALSE;
}
if (!BuildTree(&(p->right), x+1, y)) //Build right tree
{ return FALSE;
}
*T = p;
}
}
return TRUE;
}
////////////////////////////////
// In the Main
///////////////////////////////
void main()
{ TreeNodePtr fullTree=(TreeNodePtr) malloc (sizeof (struct
TreeNode));
fullTree->data.x = 0;
fullTree->data.y = 0;
fullTree->data.type = 1;
fullTree->left = NULL;
fullTree->right = NULL;
BuildTree(&fullTree, 0, 0);
PrintTree(fullTree,0);
}
that my buildTree function doesn't work. Could anyone give me some
hints on debugging it? Thanks
bool BuildTree(TreeNodePtr *T, int x, int y)
{ if (boardSize == 0) //boardSize is a global variable
{ return TRUE;
}
else
{
if (x > boardSize || y > boardSize)
{ return FALSE;
}
else
{ TreeNodePtr p = (TreeNodePtr)malloc(sizeof(struct TreeNode));
p->left = NULL;
p->right = NULL;
p->data.x = x;
p->data.y = y;
p->data.type = GetStepType(itemList, x, y); //GetStepType just
return a int
if (!BuildTree(&(p->left), x, y+1))//Build left tree
{ return FALSE;
}
if (!BuildTree(&(p->right), x+1, y)) //Build right tree
{ return FALSE;
}
*T = p;
}
}
return TRUE;
}
////////////////////////////////
// In the Main
///////////////////////////////
void main()
{ TreeNodePtr fullTree=(TreeNodePtr) malloc (sizeof (struct
TreeNode));
fullTree->data.x = 0;
fullTree->data.y = 0;
fullTree->data.type = 1;
fullTree->left = NULL;
fullTree->right = NULL;
BuildTree(&fullTree, 0, 0);
PrintTree(fullTree,0);
}