Я пытаюсь построить дерево. Единственная информация, которую я имею для каждого элемента, - это идентификатор родителя, к которому он обращается.
У меня есть три разные записи:
Type TRecord1 = Record
ID : Integer;
Name : String255;
Res : Array[1..500] Of Byte;
End;
//------------------------------------------------------------------------------
Type TRecord2 = Record
ID : Integer;
Parents : Array [0..4] of Integer;
Customer : String100;
Res : Array[1..500] Of Byte;
End;
//------------------------------------------------------------------------------
Type TRecord3 = Record
ID : Integer;
Parents : Array [0..4] of Integer;
Datas : String20;
Res : Array[1..500] Of Byte;
End;
Для хранилища данных: у меня есть один файл для одного вида Записи, в которых хранятся все данные этой записи
Запись1 всегда не имеет родителя. У Record2 и Record3 всегда есть по крайней мере 1 родитель (максимум 5 => родительский массив)
Record2 может быть родителем Record2, т. Д .. Между ними нет никакой иерархии, кроме Record1, который всегда является root узлом.
Как можно эффективно построить связанное древовидное представление?
Я могу сначала построить узлы Record1, которые будут быть первыми узлами дерева. Затем для каждого из этого узла я должен найти Record2 из Record3, связанный с этим узлом, ect, ect ... Кажется, это займет слишком много времени.
Есть идеи создать дерево другим способом?
На данный момент я сохраняю TreeView в текстовом файле и создаю связь между узлом и связанной записью. Но я хочу создать TreeView из данных вместо TreeView в одной стороне и данных в другой стороне