Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
PascalABC.NET Из двух стеков, хранящих слова, создать новый стек со словами, у которых первая или последняя буква совпадают Из двух стеков, хранящих слова, создать новый стек со словами, у которых первая или последняя буква совпадают (могут быть в разном регистре), не удаляя исходные стеки. Подходящие слова искать по-очереди в каждом из стеков. https://www.cyberforum.ru/ pascalabc-net/ thread2160850.html Сортировка слиянием PascalABC.NET
Дана последовательность, расположить ее положительные элементы, стоящие на нечетных местах по возрастанию. Задании требуется выполнить естественным и простым слиянием
PascalABC.NET Дана последовательность, расположить ее положительные элементы, стоящие на нечетных местах по возрастанию https://www.cyberforum.ru/ pascalabc-net/ thread2160795.html
Дана последовательность, расположить ее положительные элементы, стоящие на нечетных местах по возрастанию. Задание требуется сделать 7-ю методами 1.Метод простого выбора 2.Модифицированный метод простого выбора 3.Метод парных перестановок 4.Метод "всплывающего пузырька" 5.Метод шейкер-сортировки 6.Сортировка методом Шелла
PascalABC.NET Как сделать уменьшение круга Есть код вот он.Как в нём сделать уменшение круга uses GraphAbc; begin SetWindowSize(400,400); SetPenColor(clBlack); SetBrushColor(clGray); var p:array of point:=(new point(200,0),new point(400,200),new point(200,400),new point(0,200)); FillPolygon(p); Polyline(p); SetBrushColor(clWhite); https://www.cyberforum.ru/ pascalabc-net/ thread2160766.html
Динамические массивы PascalABC.NET
type reasons = record avto, city: string; date: integer; cost: integer; End; var A: array of reasons; i, n: integer;
PascalABC.NET Реализация алгоритмов внешней сортировки Дана последовательность, элементы которой есть двузначные числа. Упорядочить последовательность по возрастанию сумм цифр соответствующих элементов. 1.Метод прямого слияния program v1; uses crt; type mas=array of integer; procedure Sliv(var a:mas;p,q : integer); {процедура сливающая массивы, p-начало, q-конец} var r,i,j,k : integer; https://www.cyberforum.ru/ pascalabc-net/ thread2160710.html
PascalABC.NET Нарисовать фигуру Как нарисовать эллипс и в середине эллипса ромб? https://www.cyberforum.ru/ pascalabc-net/ thread2160706.html PascalABC.NET Написать программу, которая выводит все простые числа, не превосходящие заданного числа
Написать программу, которая выводит все простые числа, не превосходящие заданного числа . ================================================ Я кучу раз пробовал сделать , но преподавателю вечно что-то не нравится. Программа должна быть сделана через REPEAT , а у меня не получается. Нуждаюсь в хелпе:(
PascalABC.NET Нахождение номера минимального значения https://www.cyberforum.ru/ pascalabc-net/ thread2160683.html
Нахождение номера минимального значения в последовательности вводимых чисел. Остановить обработку при вводе признака конца - предварительно введенного пользователем числа!
PascalABC.NET Вычисление значений функции y = f (x) в точках x при заданных значениях a Составить программу для вычисления значения функции y = f (x) в точках x при заданных значениях a. Нахождение значения функции f(x) при заданных значениях a оформить в виде подпрограммы-функции c параметрами a и x. y =cos(ax^2)/1 + tg(3x) https://www.cyberforum.ru/ pascalabc-net/ thread2160662.html
Вычислить z=(e^s1 + e^s2)/(k1k2) PascalABC.NET
Вычислить z=({e}^{{s}_{1}} + {e}^{{s}_{2}})/({k}_{1}{k}_{2}) , где s1 и k1 – сумма и количество положительных элементов массива X(100), а s2 и k2 – сумма и количество отрицательных элементов массива Y(80).
PascalABC.NET Вывести книги каждого издательства группируя их по возрастанию дат издания Осуществить ввод общей информации по книгам (автор, название, год издания, название издательства), вывести книги каждого издательства группирую из по возрастанию их дат издания https://www.cyberforum.ru/ pascalabc-net/ thread2160540.html
0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 8
0

Бинарное древо.Определить самую короткую «ветвь» дерева (или несколько ветвей) - PascalABC.NET - Ответ 11961423

19.12.2017, 19:16. Показов 945. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Есть готовое древо, нужно написать процедуру которая выведет самую короткую ветвь (ветви).
Само древо будет выглядеть так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
                  (7)
              _____|_____
             /           \
           (5)           (9)
          __|__         __|__
         /     \       /     \
       (3)     (6)   (8)     (10)
       _|_ 
      /   \
    (1)   (4)
      \
       \
       (2)
И самые короткие в данном случае: 1) 7,5,6; 2) 7,9,8; 3) 7,9,10
Вообще без понятия как это реализовать.
Вот код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
type
PTree = ^ TTree; {указатель на узел дерева}
TTree = record      {узел дерева}
        Data: integer;
        Left, Right: PTree;
end;
 
var Tree: PTree;
 
procedure writelnD(data:string; num:integer; bool:boolean);//печать с num отступами '-'
begin if bool=true then begin for var i:=1 to num do write('-'); writeln(data); end; end;
 
//*******************Добавление_Элемента***********************//
procedure Add_Tree(x:integer;var Tree: Ptree);
begin
  //прямой порядок обхода
  if Tree=nil then begin
    New(Tree);
    Tree^.Data:=x;
  end else if(x<Tree^.Data)then
    if(Tree^.Left=nil)then begin
      New(Tree^.Left);
      Tree^.Left^.Data:=x
    end else Add_Tree(x,Tree^.Left)
    else if(Tree^.Right=nil)then begin
      New(Tree^.Right);
      Tree^.Right^.Data:=x
    end else Add_Tree(x,Tree^.Right);
end;
 
//*******************Печать_Левы_Потомков***********************//
function Print_Tree_Dop(Tree: Ptree;i:integer; bool:boolean:=true): boolean;
begin
  if Tree=nil then exit;
  //прямой порядок обхода
  writelnD(IntToStr(Tree^.Data),i, bool);//корень
  if (Tree^.Left=nil) and (Tree^.Right<>nil) then else  Print_Tree_Dop(Tree^.Left,i+1,true);//левый
  Print_Tree_Dop(Tree^.Right,i+1,false);//правый
  Print_Tree_Dop:=true;
end;
 
//*******************Печать_Дерева***********************//
function Print_Tree(Tree: Ptree;i:integer; bool:boolean:=true): boolean;
begin
  if Tree=nil then exit;
  writelnD(IntToStr(Tree^.Data),i, bool);//корень
  if (Tree^.Left=nil) and (Tree^.Right<>nil) then  else Print_Tree(Tree^.Left,i+1,true);//левый
  Print_Tree(Tree^.Right,i+1,true);//правый
  Print_Tree:=true;
end;
 
//*******************Очиска_Дерева***********************//
function Clear_Tree(var Tree: Ptree): boolean;
begin
  if Tree=nil then exit;
  //обратный порядок обхода
  Clear_Tree(Tree^.Left);//левый
  Clear_Tree(Tree^.Right);//правый
  dispose(Tree); Tree:=nil;//корень
  Clear_Tree:=true;
end;
 
begin
  var kom:integer;
  var a: array [1..10] of integer := (7, 5, 9, 3, 1, 10, 6, 8, 4, 2);
  for var i:=1 to 10 do Add_Tree(a[i],Tree);
  while true do begin
    writeln('-----------МЕНЮ-----------');
    writeln('1 - построение дерева по умолчанию');
    writeln('2 - печать дерева');
    writeln('3 - добавление элемента в дерево');
    writeln('4 - очистка дерева');
    writeln('5 - Печать левых потомков');
    writeln('6 - Выход');
    write('Команда: ');
    readln(kom);
    writeln;
  case kom of
    1: begin Clear_Tree(Tree); for var i:=1 to 10 do Add_Tree(a[i],Tree); writeln('Дерево построено по умолчанию'); end;
    2: begin if Print_Tree(Tree,0,true)=false then writeln('Дерево пустое!');end;
    3: begin
      write('Введите новое число: '); readln(kom);
      Add_Tree(kom,Tree);
      writeln('Число успешно добавлено.');
    end;
    4: if Clear_Tree(Tree) then writeln('Дерево успешно очищено.')
       else writeln('Дерево пустое!');
    5: if Print_Tree_Dop(Tree,0,false)=false then writeln('Дерево пустое!');
    7: exit;
    else writeln('Ошибка: Неверный номер команды!');
  end;
  writeln(' ');
  end;
end.
Добавлено через 1 час 35 минут
Было бы просто замечательно, если решение будет именно в этом коде.

Вернуться к обсуждению:
Бинарное древо.Определить самую короткую «ветвь» дерева (или несколько ветвей) PascalABC.NET
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2017, 19:16
Готовые ответы и решения:

Бинарное дерево - Просмотр дерева в следующем порядке: узел, левая ветвь, правая ветвь
3. Разработать программу работы с бинарным деревом. Программа должна содержать следующие процедуры,...

Как в АВЛ-дереве найти самую короткую ветвь и удалить ее?
Доброго времени суток. Нужна помощь. В АВЛ-дереве надо найти самую короткую ветвь и удалить ее. Я...

Определить самую длинную и самую короткую строку файла
помогите пожалуйста,нужно сделать прогу что бы считывало с файла строки ,определяло самую длинную...

Определить самую длинную и самую короткую из введенных строк
Необходимо организовать ввод 3 названия городов. А потом вывести на экран консольно самое длинное и...

0
19.12.2017, 19:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2017, 19:16
Помогаю со студенческими работами здесь

Определить самую короткую строку текстового файла
помогите пожалуйста

Дано три строки. Определить самую длинную и короткую
Всем привет. Вот полное задание: &quot;Введи с клавиатуры 3 строки в самой длинной поменяй первое слово...

Дан текстовый файл определить самую длинную и короткую строку
Дан текстовый файл определить самую длинную и короткую строку и поменять их местами.

В тексте найти самую длинную и самую короткую строки и поменять их местами
в тексте найти самую длинную и самую короткую строки и поменять их местами

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru