Интересно о ожидаемом повышении производительности в xobotos, я проверил двоичное дерево код теста.
Java-версия двоичного дерева node:
private static class TreeNode
{
private TreeNode left, right;
private int item;
}
struct TreeNode
{
class Next
{
public TreeNode left, right;
}
private Next next;
private int item;
}
Мне интересно, какая польза от использования структуры здесь, так как указатели Next и Previous все еще инкапсулированы в класс.
Ну, есть однолистные узлы - это чистые типы значений, поскольку им не нужны левые и правые указатели. В типичном двоичном дереве, где половина узлов - это листья, это означает уменьшение на 50% количества объектов. Тем не менее, показатели производительности, показанные выше, выглядят намного больше.
Вопрос: Есть ли еще что?
Кроме того, поскольку я бы не подумал об определении узлов дерева таким образом в С# (спасибо Xamarin!), что другие структуры данных могут извлечь выгоду из использования структур в неочевидном виде? (Хотя это немного не по теме и открыто.)