



#include	"..\Datas\ZooContainer.h"








///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ZContainer Class
///
///		- Class of general container of non hierarchical datas
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ZContainer::ZContainer(int typeID) : ZNode()
{
	type = typeID;
}

ZContainer::~ZContainer()
{
	FreeContainer();
}



void DeleteRecursContainer(ZNode *firstNode)
{
	ZNode		*curNode, *nodeSon, *nodeNext;

	curNode = firstNode;

	while(curNode != NULL)
	{
		nodeSon  = curNode->son;
		nodeNext = curNode->next;

		delete curNode;

		// Test of recursion
		if(nodeSon!=NULL)			DeleteRecursContainer(nodeSon);
		curNode = nodeNext;
	}
}


///////////////////////////////////////////////////////////////////////////
///		FreeContainer													///
///////////////////////////////////////////////////////////////////////////
void ZContainer::FreeContainer()
{
	DeleteRecursContainer(son);
	son = NULL;
}

