Можно перебирать список без использования указателей или ссылок.В некоторых случаях это устраняет необходимость в наличии списка.Рассмотрим следующий код:
int i;
for (i = 0; i < 10; ++i)
printf("%i ", i % 2);
Он напрямую выводит список 0 1 0 1 0 1 0 1 0 1 без фактического сохранения списка в памяти.
Как можно сделать подобноес бинарными деревьями?
Пожалуйста, покажите способ реализации tree_iterator, new_root_tree_iterator и traverse_tree_iterator для следующего кода, где upper_boundary_of_tree - это что-то аналогичное числу 10 в примере списка и которое я не знаю, как определить.
У людей были проблемы с тем, что я подразумеваю под upper_boundary_of_tree.Верхняя граница дерева не будет представлена числом 10. Я не знаю, как представить некоторую верхнюю границу дерева.Это часть вопроса.Верхняя граница дерева аналогична тому, как число 10 используется в приведенном выше коде списка, так как она выполняет ту же функцию, отмечая, где прекратить итерации, но это совершенно определенно не то же самое.
Если вам нужно, у вас также может быть функция free_tree_iterator.
tree_iterator i = new_root_tree_iterator();
while (traverse_tree_iterator(&i, upper_boundary_of_tree))
foobar(i);
Это беспокоило меня некоторое время.