Одна проблема, которую я сразу замечаю:
if (!(pNew = (NODE*) malloc(sizeof(NODE))))
printf("Memory overflow in insert.\n");
exit(100);
У вас есть оператор if, без фигурных скобок вокруг тела, и две строки с отступом, как будто они должны быть внутри тела оператора if. Только первая строка анализируется как часть оператора if; вторая строка, exit(100)
, происходит безоговорочно, поэтому ваша программа завершает работу, несмотря ни на что.
Вы, вероятно, должны изменить это на:
if (!(pNew = (NODE*) malloc(sizeof(NODE))))
{
printf("Memory overflow in insert.\n");
exit(100);
}
Если это не решит вашу проблему или вообще для будущих вопросов, я бы посоветовал вам опубликовать полученные результаты. Людям будет намного легче находить проблемы, если вы публикуете подробную информацию о том, что на самом деле происходит (например, вывод, неожиданное поведение и то, что вы ожидали, или тому подобное), а не просто говорите, что это не работает не более подробно.