Файл:Двоичное дерево.png
Содержимое страницы недоступно на других языках.
Материал из Викиучебника — открытых книг для открытого мира
Двоичное_дерево.png (409 × 225 пкс, размер файла: 4 Кб, MIME-тип: image/png)
Cведения об этом файле находятся на Викискладе?, хранилище изображений и мультимедиа для использования во всех проектах Фонда Викимедиа. |
Краткое описание
ОписаниеДвоичное дерево.png |
Русский: Двоичное дерево English: Binary tree |
Дата | |
Источник | Собственная работа |
Автор | Владислав Молдован |
source code
uses GraphABC;
const
Angle = -Pi / 4;
type
EdgeData = auto class
A, B, C: Point;
R: integer;
end;
var
DataStack: Stack<EdgeData>;
function RotatePoint(pA: Point; r, angle: integer): Point;
begin
var angle2 := DegToRad(angle);
Result := new Point(Round(pA.X + r * Cos(angle2)), Round(pA.Y + r * Sin(angle2)));
end;
procedure PushTreePart(pB: Point; r: integer):=DataStack.Push(new EdgeData(RotatePoint(pB, r, -135), pB, RotatePoint(pB, r, -45), r));
function RIsBig(dt: EdgeData):= dt.R > 5;
begin
LockDrawing();
DataStack := new Stack<EdgeData>();
PushTreePart(new Point(300, 300), 200);
while DataStack.Count > 0 do
begin
var dt := DataStack.Pop();
var pD := new Point((dt.A.X + dt.C.X) div 2, (dt.A.Y + dt.C.Y) div 2);
Line(dt.A.X, dt.A.Y, dt.C.X, dt.C.Y);
Line(pD.X, pD.Y, dt.B.X, dt.B.Y);
if RIsBig(dt) then
begin
var r2 := dt.R div 2;
PushTreePart(dt.A, r2);
PushTreePart(dt.C, r2);
end;
end;
Redraw();
end.
Лицензирование
Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующей лицензии:
Этот файл доступен по лицензии Creative Commons Attribution-Share Alike 4.0 International
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Элементы, изображённые на этом файле
изображённый объект
У этого свойства есть некоторое значение без элемента в
1 сентября 2017
image/png
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
Дата/время | Миниатюра | Размеры | Участник | Примечание | |
---|---|---|---|---|---|
текущий | 09:32, 1 сентября 2017 | 409 × 225 (4 Кб) | Владислав Молдован | User created page with UploadWizard |
Использование файла
Следующая страница использует этот файл:
Метаданные
Файл содержит дополнительные данные, обычно добавляемые цифровыми камерами или сканерами. Если файл после создания редактировался, то некоторые параметры могут не соответствовать текущему изображению.
Горизонтальное разрешение | 37,78 точек на сантиметр |
---|---|
Вертикальное разрешение | 37,78 точек на сантиметр |