static void DeleteAllNodes(Node *root){ Node *pright; if(root){ pright = root->right; DeleteAllNodes(root->left); free(root); DeleteAllNodes(pright); } }
//删除所有节点 static void DeleteAllNodes(Node *root) { Node * pright;//记录当前节点的右节点 if(root != NULL) { pright = root->right; DeleteAllNodes(root->left); free(root); DeleteAllNodes(pright); } }
/** *操作:从树中删除所有节点 *操作前:ptree指向一个已初始化过的树 *操作后:该树为空树 **/ void DeleteAll(Tree * ptree) { if(ptree->root != NULL) DeleteAllNodes(ptree->root); ptree->root = NULL; ptree->size = 0; }
void DeleteAll(Tree * ptree){ if(ptree){ DeleteAllNodes(ptree->root); } ptree->root=NULL; ptree->items--; }
void DestroyNodeChain(Node** baseNode) { DeleteAllNodes(baseNode); }
WZQueue::~WZQueue() { DeleteAllNodes(); DeleteCriticalSection(&m_CriticalSection); }