Итак, прежде всего, для тех, кто еще хочет, чтобы это прокомментировать, номера страниц выше, относятся к первому изданию. Во втором издании номер страницы равен 46, а диаграмма - цифра 2.5.
EDIT: автор, ссылаясь на расширение листьев на дно, говорит о перемещении всех листьев дерева, которые должны быть выровнены по вертикали друг с другом, независимо от того, находятся они на одном уровне в дереве или нет. Рисунок 2.2 расширяет их до дна, так что каждый лист находится внизу диаграммы, выровненной вертикально слева направо. Если вы посмотрите на некоторые другие диаграммы позже в книге, это не будет сделано, и листья будут показаны по вертикали в соответствии с другими узлами на том же уровне, независимо от того, являются ли эти другие узлы листьями. Этот последний способ является обычным способом рисования деревьев и является наиболее эффективным пространством.
Что касается вашего первого вопроса, я верю, что причина, по которой они не делают этого, заключается в том, чтобы сэкономить место. Если вы посмотрите на правую часть рисунка 2.4, если автор должен был продлить листья донизу, то поддерево с буквой в качестве корня должно быть перемещено вправо, заняв больше места, чем на самом деле необходимо. Хотя это минимальный случай и не имеет большого значения, можно представить себе более крупное дерево (что, я уверен, есть в книге, хотя я и не искал), что потребует больше места.
По второму вопросу, по существу, говорится, что если у вас есть * b + c * d, и вы считаете умножения как братья и сестры (так как они должны были поддерживать порядок операций действительными), то листья a и b будет слева от c и d в дереве, так же, как они находятся слева от c и d в уравнении. По сути, он просто говорит, что он уже сказал в первой части, а именно, что листья дерева должны быть прочитаны слева направо, чтобы точно воспроизвести исходный синтаксис, а не переключать порядок любых частей (т. Е. Если дерево читается слева направо c * d + a * b, который может быть действительным, но не будет деревом, которое мы рассматриваем).
Можете ли вы объяснить мне, что вы подразумеваете под слоем «удлинить листья на дно»? Прошу прощения, если мой вопрос слишком наивен. –
@ user25464 Добавлен редактирование моего ответа, чтобы попытаться объяснить, что подразумевается под «удлинить листья на дно». Надеюсь, это поможет немного объяснить некоторые вещи. Вы можете захотеть взглянуть на простую теорию дерева, если вы все еще смущены деревом (особенно бинарные деревья). Обычно это обрабатывается в большинстве книг по структуре данных. –