Дерево - это абстракция, которую мы помещаем поверх некоторой коллекции последовательностей 0 и 1, которые могут быть где угодно (в регистрах ЦП, в кеше ЦП, в памяти и т. Д.). Обход этого представляет собой последовательность инструкций процессора, которые инкапсулируют логику, необходимую для обхода дерева.
Что касается того, как схемы понимают строку p = p.getLeft();
, компилятор выполнил работу по переводу этой инструкции в необходимые машинные инструкции, которые процессор понимает и выполняет.
Честно говоря, здесь лучше мыслить абстрактно. Если вы хотите понять обход двоичного дерева, подумайте на этом уровне абстракций. Если вы хотите понять, как работают компьютеры на уровне 0 и 1, забудьте о бинарных деревьях и изучите архитектуру компьютера.
Наконец, обратите внимание, что 0 и 1 - это просто абстракция над истинным механизмом.