Всем большое спасибо за помощь! Разобрался в проблеме.
Исправлена процедура AddVertex:
Код:
void AddVertex(int data, vertex *&root)
{
vertex **p;
p=&root;
while((*p)!=NULL)
{
if(data<(*p)->data) p=&((*p)->left);
else
if(data>(*p)->data) p=&((*p)->right);
else
if(data==(*p)->data) break;
}
if((*p)==NULL)
{
*p=new vertex;
if((*p)==NULL)
{
printf("Error 0x42! Not enought memory!\n");
}
(*p)->data=data;
(*p)->right=NULL;
(*p)->left=NULL;
}
}
Красным выделены изменения в коде.
Переработанный исходник в аттаче: