У меня возникли проблемы с пониманием следующего блока кода:
void InsertSorted(Entry * & list, Entry * newOne) {
if (list == NULL || newOne->name < list->name) {
newOne->next = list;
list = newOne;
} else {
InsertSorted(list->next, newOne);
}
}
Я попытался отследить код, но мне удалось добраться до точка, где вы перейдете к первому оператору if. Когда я дохожу до того, что выполняю первый оператор if, я не понимаю, как предыдущие вызовы InsertSorted смогли подключить переднюю часть списка к вновь созданному списку.
Спасибо