Помогите сделать рабочей прогу:
Type
Tree = ^Ver;
Ver = record
Inf: <тип данных>;
Left, Right: Tree
end;
function Count (T: Tree; A: <тип данных>) : byte;
var
S: Spisok; {указатель на стек}
k: byte; {количество вершин со значением А}
begin
PystStek(S);
k:=0;
While T<> nil do {T 3/4 ссылка на текущую (очередную) вершину, начинаем с корня}
begin
if T^.Inf = A
k:= k+1;
{переходим к следующей вершине}
if T^.Left <> nil
then {если есть ветвь влево}
begin
{проверяем, есть ли еще и правая ветвь}
{если да, то заносим ссылку на нее в стек (запоминаем) и двигаемся влево}
if T^.Right <> nil
then InsStek (S, T^.Right);
T:= T^.Left {текущей становится левая вершина}
end
else {нет ветви влево}
if T^.Right <> nil {но есть ветвь вправо}
then T:= T^.Right
{двигаемся вправо, т.е. текущей становится правая вершина}
else {нет обеих ветвей, т.е. вершина является листом дерева}
begin
{необходимо вернуться к той вершине, которая находится в стеке}
if StekPyst(S) {если стек пуст}
then T:= nil {конец работы}
else DelStek(S,T)
{если стек не пуст, удаляем из него вершину,
одновременно, передавая ее адрес как адрес текущей вершины, т.е. переходим на ее обработку}
end;
end; {while}
count:= k
end;
Спасибо, кому это не затруднительно сделать.