Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2018, 07:55   #1
Раиса17
 
Регистрация: 12.06.2018
Сообщений: 6
По умолчанию Еще одно задание с деревом в Паскаль

Задание: Создать бинарное дерево поиска, элементами которого являются случайные целые числа. Преобразовать заданное дерево, удалив из него вершины с четными значениями. Предусмотреть вывод содержимого вершин построенных деревьев.

Можно ли для основы использовать этот код? Есть некоторые функции и он пока только задает значениям дерева случайные числа.
И как до конца выполнить задание?
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, crt32, Windows;

type
PNode=^Node; 
 Node=record 
   data:integer;
   left,right:PNode; 
end;

var
  Tree,p1:PNode; 
  n,x,i:integer;
  ch:char; 


procedure AddToTree (var Tree:PNode;x:integer); 
begin
 if Tree=nil then  
   begin
     New(Tree);  
     Tree^.data:=x;    
     Tree^.left:=nil;    
     Tree^.right:=nil;  
      exit;
   end;
 if x < Tree^.data then   
     AddToTree(Tree^.left,x)  
  else
    AddToTree(Tree^.right,x);  
end;
 

function Search(Tree:PNode;x:integer):PNode; 
var
p:PNode;   
begin
  if Tree=nil then   
     begin
       Search:=nil;  
       exit; 
     end;
  if x=Tree^.data then  
    p:=Tree  
     else   
       if x < Tree^.data then 
          p:=Search(Tree^.left,x) 
       else     
         p:=Search(Tree^.right,x);  
  Search:=p; 
end;
 

procedure Lkp(Tree:PNode);
begin
  if Tree=nil then  
   exit;      
  Lkp(Tree^.left);  
  write('  ',Tree^.data); 
  Lkp(Tree^.right);  
end;
 

procedure DeleteTree(var Tree1:PNode );
begin
        if Tree1 <> nil then
          begin
            DeleteTree (Tree1^.LEFT);
            DeleteTree (Tree1^.RIGHT);
            Dispose(Tree1);
          end;
end;

begin
  { TODO -oUser -cConsole Main : Insert code here }

  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);

   Tree:=nil;
    writeln(' kolv elementov');
    readln(n);
     for i:=1 to n do
       begin
         x:=random(15);
         AddToTree(Tree,x);
       end;
    writeln('Само дерево');
    Lkp(Tree);
    writeln;
   DeleteTree(Tree);
   readln;

end.
Раиса17 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите решить задание на массив и еще одно gurman9 Microsoft Office Excel 1 18.11.2014 00:31
Нужно вписать в программу еще одно действие. Dumbl-D Помощь студентам 3 29.11.2013 15:19
Как в существующий макрос добавить еще одно условие выборки? ХочуЗнать Microsoft Office Excel 20 05.12.2012 16:01
куда вставить еще одно условие?С++ Guzal Помощь студентам 6 27.02.2011 22:05
Одно поле StringField в DataView в Rave. Как добавить еще? Leser Помощь студентам 1 06.10.2008 15:00