|
|
| Новости |
Использование двоичного дерева для организации разреженных массивов
Двоичное дерево является по существу модифицированным спис-
ком с двойной связью. Основное его преимущество над обычным спис-
ком является быстрота поиска элемента, и как следствие, быстрота
вставок и просмотров. В тех случаях, когда требуется обеспечить
быстрый поиск в связанном списке записей, применение двоичных де-
ревьев дает очень хорошие результаты.
При использовании двоичного дерева для реализации электрон-
ной таблицы, запись "cell" следует изменить следующим образом:
CellPointer = ^cell;
str9 = string[9];
str128 = string[128];
cell = record
CellName: str9;
formula: str128;
left: CellPointer;
right: CellPointer;
end;
Функцию "Stree", приведенную в главе 2, можно модифицировать
так, что дерево будет строиться по названию ячейки. Следует отме-
тить, что параметр "New" является указателем на новый элемент де-
рева.
При вызове этой функции в качестве первых двух аргументов
должен задаваться указатель корневой вершины, а в качестве треть-
его аргумента должен задаваться указатель на новую ячейку.
В качестве результата выдается указатель корневой вершины.
{ вставка ячейки в дерево }
function STree(root, r, New:CellPointer; data: char):
CellPointer;
begin
if r = nil then
begin
New^.left := nil;
New^.right := nil;
if New^.Cellname < root^.Cellname
then root^.left := New
else root^.right := New;
STree := New;
end else
begin
if New^.Cellname
|
|
(с)Все права защищеныПо всем интересующим вопросампрошу писать на электронный адрес
|