|
Новости |
Использование двоичного дерева для организации разреженных массивовДвоичное дерево является по существу модифицированным спис- ком с двойной связью. Основное его преимущество над обычным спис- ком является быстрота поиска элемента, и как следствие, быстрота вставок и просмотров. В тех случаях, когда требуется обеспечить быстрый поиск в связанном списке записей, применение двоичных де- ревьев дает очень хорошие результаты. При использовании двоичного дерева для реализации электрон- ной таблицы, запись "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 |
(с)Все права защищеныПо всем интересующим вопросампрошу писать на электронный адрес |