Автор Источник: Visual Basic 6. Руководство Разработчика
28.09.2001 г.
Что такое элемент TreeView и с чем его едят?
Элемент TreeView реализует наиболе совершенную структуру отображения данных. Конструкция элементов скрывает сложную стркуктуру хранения данных. С этой задачей элемент справляется прекрсно. Однако его применение значительно сложнее,чемостальных элементов. В элементе TreeView реализована структура данных, известная как дерево (tree). Дерево - самая удобная структура для хранения иерархической информации. Каждый элемент дерева называют узлом (node). Узлы можно поместить на любой уровень. Верхний узел дерева называют корневым узлом (root node), а узлы, лежащие ниже, - дочерние узлы (child nodes). Если использовать аналогию с настоящим деревом, то можно представить как дерево, перевёрнутое корнем вверх. Папка Windows на вашем клмпьютере является для папки System родительским узлом (parent node).
Древовидная структура - основа многих программ. Она используется в компьютерных игровых досках для хранения всех возможных позиций. Делая ход, компьютер находит текущее состояние игровой доски в дереве и выбирает "наилучший ход". Древовидная структура ходов для игры в крестики нолики состоит из девяти узлов на первом уровне. Они соответсвуют всем вариантам первого хода. Под каждым из них находиться восемь узлов - возможные варианты второго хода (одна из девяти клеток уже занята). На втором уровне - 9*8 или 72 узла. На третьем - под каждым из них находится восемь узлов, что соответствует возможным вариантам третьего хода, т.е. на этот уровень помещено 72*7 или 504 узла и т.д. Каждому узлу дерева можно присвоить значение, которое указывает, "хороший" или "плохой" данный ход. Когда компьютеру предстоит сделать ход, он просматривает дерево, определяет текущее состояние игровой доски, а затем выбирает "лучший" ход.
Игра в крестики - нолики примитивна. Используя дерево, можно модулировать шахматную доску. Однако такое дерево быстро разрастается до таких гигантских размеров, что для его хранения не хватит никакого разумного объёма памяти. Процесс сканирования узлов гигантского дерева будет идти слишком долго.
Каждый уровень узлов элемента TreeView - это семейство. Каждый элемент семейства - узел, в который могут входить дочерние узлы. Дочерние узлы каждого узла образуют ещё одно семейство и т.д. Элемент TreeView используют совместно с элементом ImageList. Это простой элемент для хранения рисунков, позволяющий быстро находить и использовать рисунки во время выполнения приложения.
При разработке программного обеспечения поддержка древовидной структуры рассамтривается как основная операция. Студенты тратят массу времени на изучение способов реализации древовидной структуры. К счастью, при использовании Visual Basic не нужно разрабатывать древовидные структуры. Элемент TreeView, входящий в набор элементов ActiveX, обеспечивает средства хранения данных.