рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Деревья

Деревья - раздел Программирование, Лабораторный практикум по языку программирования Pascal 1) Какую Структуру Называют Деревом? 2) Приведите Примеры Деревьев....

1) Какую структуру называют деревом?

2) Приведите примеры деревьев.

3) Назовите различные способы графического представления древовидной структуры.

4) Как с помощью массивов можно представить дерево?

5) Какая связь существует между числом вершин и числом ребер дерева?

6) Какое дерево называется упорядоченным?

7) Что называется глубиной или высотой дерева?

8) Что называется степенью дерева (вершины)?

9) Приведите пример двоичного дерева.

10)Какое дерево называется идеально сбалансированным?

11)Изобразите идеально сбалансированное дерево из 10 (13) вершин.

12)Напишите процедуры:

a) печати элементов дерева;

b) поиска по дереву элемента B (результат типа boolean);

c) поиска в упорядоченном дереве элемента B (результат типа boolean);

d) вставки в упорядоченное дерево элемента Y;

e) создания из массива упорядоченного дерева;

f) замены всех отрицательных элементов дерева на их модуль;

g) строящую дерево- копию исходного непустого дерева;

h) нахождения наибольшего элемента дерева.

13)Напишите функции:

a) подсчета количества вершин дерева;

b) подсчета числа вхождений элемента E в дерево;

c) вычисления суммы элементов дерева;

d) определения глубины непустого дерева;

e) вычисления среднего арифметического элементов дерева.

14)В следующих программах найдите смысловые ошибки и укажите реакцию машины на них, если есть описание:
type p=^element;
element=record
f: integer;
left, right: p end;

a) печать дерева

procedure print (x: p; h: integer);
var i: integer;
begin print (x^.left, h+1);
for i:=1 to h*10 do write (“ ”);
writeln (x^.f); writeln;
print (x^.right, h+1) end.

b) поиск элемента по дереву

procedure search (x: p; B: integer; var A: boolean);
begin if x^.f=B then A:=true else
while x<>nil do begin search (x^.left, B, A);
search (x^.right, B, A) end; A:=false end.

c) создание дерева-копии

procedure copy (x: p; var y: p);
begin if x<>nil then begin new (y); y^.f:=x^.f;
copy (x^.left, y^.left); copy (x^.right, y^.right)
end end.

d) нахождение глубины дерева

function depth (x: p): integer;
var h1,h2: integer;
begin if x=nil then depth:=-1 else
begin h1:=1+ depth (x^.left);
h2:=1+ depth (x^.right);
if h1>h2 then depth:=h1 else depth:=h2
end end.

e) создание из массива упорядоченного дерева

procedure search1 (k: integer; var x: p);
var i: integer;
begin i:=1; while i<>n do begin
if x=nil then begin new (x); x^.f:=A[i];
x^.left:=nil; x^.right:=nil end
else
if A[i]<x^.f then search1 (A[i], x^.left)
else
if A[i]>x^.f then search1 (A[i], x^.right);
i:=i+1 end end.

f) вычисление среднего арифметического

function sr (x: p): real;
var n: integer; S: real;
begin if x=nil then sr:=0 else
S:=0; n:=1;
while x<>nil do begin
S:=S*(n-1)/n+x^.f/n; n:=n+1;
sr (x^.left); sr (x^.right) end end.

g) нахождение наибольшего элемента

procedure max (x: p; var M: integer);
begin if x=nil then write (“наибольшего нет”) else
M:=x^.f; while x<>nil do max (x^.left, M);
if x^.f>M then M:=x^.f; max (x^.right, M) end end.

 


– Конец работы –

Эта тема принадлежит разделу:

Лабораторный практикум по языку программирования Pascal

Лабораторный практикум по языку программирования Pascal... Ярославль Печатается по решению...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Деревья

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Дополнительные задачи.
1. Даны два натуральных числа M и N, M < N. Определить длину периода десятичной дроби M/N и период данной десятичной дроби M/N. (1 балл). 2. Напечатать в порядке возрас

Дополнительные задачи.
1. На двух прозрачных листах бумаги в клетку размерами 20х20 нарисовано по одной фигуре, состоящей из закрашенных клеток. Составьте программу, которая отвечает на вопрос: конгруентны ли эти фигуры?

Лабораторная работа №14 Линейная комбинация векторов
Цель работы: Овладеть навыками составления алгоритмов решения геометрических задач по теме "Линейные операции над векторами", используя заданный набор процедур.   Ф

Дополнительные залания
1. Бинарный поиск (1 балл) Составить и опробовать работу процедуры, которая определяет, есть ли в данном упорядоченном по возрастанию файле вещественных (целых) чисел данн

Величина. Команды присваивания, ветвления и выбора.
1. Что называется алфавитом языка? 2. Дайте определения величины, выражения, оператора языка программирования. 3. Опишите общую структуру программы на языке Паскаль. Как называютс

Массивы
1. Дайте определение массива. 2. Перечислите три основные свойства табличных величин (массивов). 3. Как описываются массивы на языке Паскаль? 4. Может ли массив содержать

Литерные переменные
1. Дайте определение литерной величины. 2. Как описываются литерные переменные на языке Turbopascal? 3. Объясните, какие значения могут принимать строковые величины А, В, С (что о

Процедуры и функции
1. В каком месте программы и в каком порядке располагаются функции и процедуры? Сравните с алгоритмическим языком. 2. Что такое локальные и глобальные переменные и как они различаются на я

Графика
1. Объясните, для чего предназначен модуль GRAPH. Каким образом он подключается к работе, как совместить его работу с модулем CRT? 2. Как инициализируется и выключается графический режим?

Датчик случайных величин
1. Как вы понимаете термин «случайная величина»? 2. Что такое, по-вашему, равномерно распределенная случайная величина? 3. По какому принципу устроен датчик случайных чисел в язык

Множества
1. Какого типа может быть множество? 2. Как ввести множество с клавиатуры? 3. Как выводить множество на экран? 4. Выполните операции: (1) ['C','l','M','N'] * ['C

Динамическая память
1. Какие виды внешней памяти для персонального компьютера Вы знаете? 2. Какие виды внутренней памяти персонального компьютера Вы знаете? 3. Как распределяется оперативная память п

Файл PRIMER1.pas
program upr1; uses crt; var f,i,o:string[15]; v,g,year:integer; begin clrscr; write('Введите номер текущего года ');readln(year); write('Введит

Файл lab10.pas
program str_lab; uses crt; type str=string[50]; mass=array[1..20] of str; var s,s1,s2,s3:str; i,j,k,l,n,t:integer; x:mass; {----------------------------------------}

Файл lab11.pas
program matrix_lab; uses crt; type st=array[1..20] of real; matr=array[1..20] of st; var n, m, j, i, k, l, r: integer; s,s1,s2,s3,ext:real; x,y:st; a:matr; {---------------

Файл List1.pas
program upr1; type vector = array[1..20] of real; var m,g,s,f,a,b,c,d,p,q:vector;i,j,k,n:integer;l,w,v,x,y,z:real;   function det2(a,b,c,d:real):real;

Файл List2.pas
program upr1; type vector = array[1..20] of real; var a,b,c,d,p,q,m,g,f,h:vector;i,j,k,n:integer;s,l,u,w,v,x,y,z:real;   function det2(a,b,c,d:real):real;

Файл LAB5.pas
program upr; uses crt; {-----------------описание типов-----------------------} type st=string[20]; str=string[8]; ocenka=record ekz:array[1..6] of integer; zach1,zach2:s

Файл LAB6.pas
program upr; uses crt; {-----------------описание типов-----------------------} type st=string[20]; data=record day:1..31; month:st; year:integer; end;

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги