Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

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

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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


23:04.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru