
- •Курсовая работа
- •Реализация прикладной задачи при помощи двунаправленных деревьев
- •Задание на курсовую работу
- •Введение
- •Структура данных дерева и основные операции над деревьями
- •Основные понятия связанные с деревьями
- •Классификация деревьев
- •Двоичные деревья
- •Представление двоичных деревьев
- •Упорядоченное двоичное дерево и его свойства
- •Двоичные деревья поиска
- •Основные операции над деревьями.
- •Реализация базы данных клиентов банка на основе двоичных деревьев
- •Постановка задачи
- •Глобальные и локальные переменные
- •Глобальные переменные
- •Локальные переменные
- •Процедуры и функции
- •Процедуры программы
- •Функции программы
- •Инструкция пользования
- •Заключение
- •Список использованных источников
- •16 В.Д. Далека, а.С. Деревянко, о.Г.Кравец, л.Е. Тимановская Модели и структуры данных. Учебное пособие Харьков:хгпу, 2000. - 241с.
- •Приложение а
- •(Обязательное)
- •Блок-схемы основных операций
- •(Обязательное)
16 В.Д. Далека, а.С. Деревянко, о.Г.Кравец, л.Е. Тимановская Модели и структуры данных. Учебное пособие Харьков:хгпу, 2000. - 241с.
Приложение а
(Обязательное)
Блок-схемы основных операций
Процедура создания БД клиентов


Продолжение приложения А
Процедура просмотра доходов



Процедура удаления БД

Продолжение приложения А
Процедура считывания БД из файла

Продолжение приложения А
Процедура поиска

Search







-
-
-
+
+
+
Возврат
Search:=p
P:=Search(p^.left,x,k)
P:=Search(p^.left,x,k)
x<p^.data
x=p^.data
p:=Tree
Exit
Search:=Nil
Tree:=nil









x
F
AddToTree(Tree,x,k)
i=i+1
k
i:=1
n
ch
ch
Tree:=nil
Close (f)
i:=i+1
AddToTree (Tree, BD [i].
data, BD [i]. name
i:=1
Zapis(BD)
Reset(f)
Assign(f, ’C:\sprav.txt’)
END
Delete(Tree)
Lkp(Tree)
P1<>nil
x
Не найден
P1^.name
P1:=Search(Tree,x,k)
Приложение Б
(Обязательное)
Листинг программы
uses crt;
const
p=7;
type
PNode=^Node;
Node=record
data:longint;
left,right:PNode;
name:string[15];
end;
Base = array [1..p] of node;
var
BD:Base;
Tree,p1:PNode;
n,x,i:integer;
ch:char;
k:string [15];
t:string ;
f:text;
procedure AddToTree (var Tree:PNode;x:integer;t:string[15] ; k:string[15]);
begin
if Tree=nil then
begin
New(Tree);
Tree^.name:=k;
Tree^.data:=x;
Tree^.name:=t;
Tree^.left:=nil;
Tree^.right:=nil;
exit;
end;
if x < Tree^.data then
AddToTree(Tree^.left,x,t,k)
else
AddToTree(Tree^.right,x,t,k);
clrscr;
end;
function Search(Tree:PNode;x:integer;t:string [15];k:string [15]):PNode;
var
p:PNode;
begin
if Tree=nil then
begin
Search:=nil;
exit;
end;
p:=tree;
if x=p^.data then
else
if x < p^.data then
p:=Search(p^.left,x,t,k)
else
p:=Search(p^.right,x,t,k);
Search:=p;
clrscr;
end;
procedure Lkp(Tree:PNode);
begin
if Tree=nil then
exit;
Lkp(Tree^.left);
writeln;
write(' ',Tree^.data);
write(' ',Tree^.name);
writeln;
Lkp(Tree^.right);
end;
procedure zapis (var BD:Base);
var i:integer;
begin
for i:=1 to p do
begin
readln (f, BD[i].name);
readln (f, BD[i].data);
end;
end;
procedure DeleteTree(var Tree1:PNode );
begin
if Tree1 <> nil then
begin
DeleteTree (Tree1^.LEFT);
DeleteTree (Tree1^.RIGHT);
Dispose(Tree1);
end;
clrscr;
end;
begin
Tree:=nil;
repeat
TextColor (1);
Writeln('Доступны пункты:');
TextColor (4);
Writeln('1) Создание базы данных клиентов банка');
TextColor (4);
Writeln('2) Считывание бызы данных из файла');
TextColor (4);
Writeln('3) Поиск по базе');
TextColor (4);
Writeln('4) Доход клиентов банка ');
TextColor (4);
Writeln('5) Выход');
writeln;
readln(ch);
case ch of
'1': begin
;
writeln('Кол-во эллементов');
;
readln(n);
for i:=1 to n do
begin
;
writeln('Размер дохода клиента');
readln(x);
Writeln('Номер телефона');
readln(t);
Writeln('Имя клиента');
readln(k);
AddToTree(Tree,x,t,k);
end;
end;
'2': begin
;
assign(f, 'C:\bd.txt');
reset (f);
zapis (BD);
for i:=1 to p do
AddToTree (Tree,BD[i].data,BD[i].name,BD[i].name);
TextColor (1);
writeln ('БД считана.');
writeln;
close(f);
end;
'3': begin
;
writeln('Введите размер дохода');
TextColor (4);
readln(x);
p1:=Search(Tree,x,t,k);
if p1 <> nil then
begin
TextColor (1);
writeln ('Доход найден, имя клиента:');
TextColor (4);
writeln (p1^.name);
TextColor(1);
end
else writeln('Доход не найден');
end;
'4': begin
;
writeln('Все клиенты');
TextColor (4);
Lkp(Tree);
writeln;
end;
end;
until ch='5';
DeleteTree(Tree);
end.