Теперь понял, спасибо! Но есть один недостаток: корневые узлы создаются вне зависимости от того есть ли в них необходимость, т.е. не должно быть пустых корневых узлов, в которых не будет дочерних узлов.
Access Violation вылазил при таком быдлокоде: при более трех вложенных(не вложенных тоже) условиях на проверку первого символа ошибка и случалась. По одному работали все. Поэтому я и сделал вывод, что компилятору не понравилось именно количество условий и их ветвлений внутри цикла for:
Код:
цикл for от 1 до кол-ва строк таблицы-1
начало цикла
если первый символ 5
если нода из массива[5] невидима
добавить корневую и присвоить массиву[5]
иначе
добавить дочернюю
иначе
если первый символ 6
если нода из массива[6] невидима
добавить корневую и присвоить массиву[6]
иначе
добавить дочернюю
иначе
...
иначе
если невидима нода из массива[12]
добавить корневую и присвоить массиву[12]
иначе
добавить дочернюю
конец цикла