Последние записи
- Рандомное слайдшоу
- Событие для произвольной области внутри TImage
- Удаление папки с файлами
- Распечатка файла
- Преобразовать массив байт в вещественное число (single)
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
24th
Дек
Бинарные деревья
Posted by maloy under Delphi, Архив
gilex
Составить программу, определяющую количество вершин к — того уровня бинарного дерева.
я формирую и вывожу дерево. ну вот сложность в том, что я и рекурсию пробовал и циклы всякие ничего не получается а обход и подсчет количества вершин К-того уровня сделать не могу.
Stepler
Вот держи! А процедурка довольно таки просатя.
Program derevo;
Uses Crt;
Type inform = Integer;
ss = ^zveno;
zveno = Record
key: Integer;
inf: Inform;
left, right: ss;
End;
Var t:ss;
n,nn,c,i,k: Integer;
procedure pkv(tt:ss;nk:integer);
begin
if(nn=nk) then begin k:=k+1;;nn:=nn-1;exit;end;
if(tt^.left<>nil)then begin nn:=nn+1;pkv(tt^.left,nk);end;
if(tt^.right<>nil)then begin nn:=nn+1;pkv(tt^.right,nk);end;
nn:=nn-1;
end;
{----формирование дерева----}
Procedure Vstavka (Var p: ss; x: Integer);
Begin
If p = Nil Then
Begin
New (p);
p^.inf:=x;
p^.key:=1;
p^.left:=Nil;
p^.right:=Nil;
End;
If x<p^.inf Then Begin Vstavka (p^.left,x); End;
If x>p^.inf Then Begin Vstavka (p^.right,x); End;
End;
{----вывод дерева----}
Procedure Print (Var p: ss; h: Integer);
Var i: Integer;
Begin
If p <> Nil Then
Begin
Print(p^.right,h+4);
For i:=1 To h Do Write (' ');
Writeln (p^.inf);
Print (p^.left,h+4);
End;
End;
Begin ClrScr;
Writeln ('Vvedite koli4estvo klju4ej: ');
Readln (n);
For i:=1 To n Do
Begin
Read (c);
Vstavka (t,c);
End;
Print (t,c);
Writeln ('Vvedite urovenj: ');
Readln (n);
nn:=1;
k:=0;
pkv(t,n);
writeln('Koli4estvo vershun na ',n,' urovne = ',k);
Readkey;
End.
тема на форуме от 2009 года
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)