Алматинська ФІЛІЯ недержавних освітніх закладів ВИЩОЇ ОСВІТИ
«САНКТ-Петербурзького гуманітарного університету профспілок»
Факультет: Економічний
Кафедра: Економіки, інформатики та математики
ЛАБОРАТОРНА РОБОТА
Структури даних в предметній області
Виконав студент: Алігасанов І.С.
ПІВ групи 2 курсу
вечірнього відділення
Перевірив: Ніколенко А.Б.
Алмати, 20113
Лабораторна робота 5. Написати функцію, яка обчислює середнє арифметичне елементів непорожнього списку
Код програми:
crt;spisok=^S;=record:integer;:spisok;;u,x:spisok;,vi:integer;:real;:=0;;;(u);^.num:=3;^.next:=nil;i:=2 to 10 do (x);:=random (20); ^. num:=vi; ^. next:=u;:=x ;; u lt; gt; nil do (u ^ .num: 3);:=sr + u ^ .num;:=u ^ .next ;;:=sr/10 ;;; ( Srednee=, sr: 5: 1) ;;.
Лабораторна робота 6. Написати функцію, яка знаходить найменший елемент дерева
Код програми:
, SysUtils;=8;=100;=record: Boolean;: Integer;: Integer;: Integer ;;=array [1..m] of Node;=array [1..m] of Integer ;: Tree;: Char;: array [1..n] of String [100] ;: Mas;, x, y: Integer; ShowMenu;: Integer ;; ( Вас вітає програма для роботи з Бінарним деревом пошуку ); ( Для роботи в програмі використовуйте клавіші вгору і вниз для переміщення по пунктах. Для вибору пункту натисніть клавішу Enter. Для виходу із програми натисніть клавішу Esc. ); i:=1 to n do (x, y + i - 1); (menu [i]) ;; (red); (x, y + punkt - 1); (menu [punkt]) ;; InsertElement (e, k: Integer ) ;: Integer; not BTree [1] .ex then [1] .ex:=true; [1] .info:=e; [1] .left:=0; [1] .right:=0; e lt ; BTree [k] .info thenBTree [k] .left=0 theni:=2 to m doBTree [i] .ex=false then[k].left:=i;[i].ex:=true;[i].info:=e;[i].left:=0;[i].right:=0;;;(e,BTree[k].left)BTree[k].right=0 theni:=2 to m doBTree [i] .ex=false then[k].right:=i;[i].ex:=true;[i].info:=e;[i].left:=0;[i].right:=0;;;(e,BTree[k].right);;;FindElement (e: Integer; d: Boolean; var A: Mas): Integer;: String;, c, i, j: Integer;:=1; i:=1 to m doBTree [i] .ex thenBTree [i]. info=e then [j]:=i;:=j + 1 ;;:=j - 1;:=A [1]; A [1] lt; gt; 0 thenj:=1 to i doA [j] lt; gt; 0 then:=A [j];:=e;:=IntToStr (BTree [A [j]]. info);:=1; c lt; gt; 1 dob lt; gt; m do ((BTree [b] .left=c) or (BTree [b] .right=c)) and (BTree [b] .ex) then:=Concat (IntToStr (BTree [b] .info), - raquo ;, way);:=b;:=0 ;;:=b + 1 ;; d then ( Індекс шуканого елемента дорівнює: , e, , way) ;; d then ( Бажаємий елемент не знайден! ) ;; DeleteElement (k: Integer) ;, b, c, i: Integer; BTree [k] .right lt; gt; 0 then:=BTree[k].right;:=a;:=BTree[a].left;a=0;:=b;[b].left:=BTree[k].left;:=b;:=BTree[b].right;b=0;[c].right:=BTree[k].right;[a].ex:=false;[k].info:=BTree[a].info;[k].right:=BTree[a].right;[a].left:=0;[a].right:=0;i:=1 to m do (BTree [i] .left=a) or (BTree [i] .right=a) thenBTree [i] .left=a then [i] .left:=0 [i] .right:=0; BTree [k] .left lt; gt; 0 then:=BTree[k].left;[a].ex:=false;[k].info:=BTree[a].info;[k].left:=BTree[a].left;[k].right:=BTree[a].right;[a].left:=0;[a].right:=0;[k].ex:=false;i:=1 to m do (BTree [i] .left=k) or (BTree [i] .right=k) thenBTree [i] .left=k then [i] .left:=0 [i] .right:=0; ;; DeletePart (k: Integer); k=0 then; [k] .ex:=false; (BTree [k] .left); (BTree [k] .right) ;; WriteElement (a, b, c, d, e: Integer); not (BTree [d] .ex) then:=e - 1 ;;; e=5 then:=e - 1 ;;; (a, b);:=e + 1; ( BTree [d] .info); (BTree [d] .left lt; gt; 0) then (ac, b + 2, c div 2, BTree [d] .left, e); (BTree [d] .right lt; gt; 0) then (a + c, b + 2, c div 2, BTree [d] .right, e) ;; CreateTree (a: Boolean); e, i, n: Integer;: Char ;; BTree [ 1] .ex then ( Дерево вже створено! ) ;; a then ( Дерево ще не створено. Ви бажаєте створити його? (Так/Ні) (Введіть заголовну букву): ); (v) ; not (v in [ Д , д ]) then ;; ( Введіть кількість елементів (не більше , m, ): ); (n); (n gt; m ) or (n lt; 0) do ( Помилковий введення! Введіть заново кількість елементів (не більше , m, ): ); (n) ;; ( Вводите елементи, перший елемент буде коренем дерева:); i:=1 to n do (e); (e, 1) ;;;; InsertElementInTree;, e, i, n: Integer ;; not (BTree [1] .ex) then (true) :=0; i:=1 to m doBTree [i] .ex then:=b + 1; ( Введіть кількість елементів (не більше , mb, ): ); (n); ( n gt; (mb)) or (n lt; 0) do ( Помилковий введення! Введіть заново кількість елементів (не більше , mb, ): ); (n) ;; ( Вводите елементи: ); i:=1 to n do (e); (e, 1 ) ;;;; FindElementOfTree;, e: Integer ;; not (BTree [1] .ex) then (true) ( Введіть елемент: ); (e); i:=1 to m do [i] :=0; (e, true, A) ;;;; DeleteElementOfTree;, i, j, k, l, ...