Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Організація списку за допомогою двійкового дерева

Реферат Організація списку за допомогою двійкового дерева





ing [10];// номер групи

end;

T=Integer; {Це буде номером заліковки}

TTree=^ TNode;// покажчик на запис=record//сама запис: T;// значення запису, Right: TTree;// ліві і праві гілки (для дерева)

end;

input: text;// вхідний файл

base: array [1..100] of SimplyRecord; {Масив з 100 записів}

r, i, NumberOfRecords, numberBook: integer;

MyTree: TTree;// безпосередньо деревоInsert (var Root: TTree; X: T);

{Додаткова процедура, що створює і инициализирующая новий вузол}

procedure CreateNode (var p: TTree; n: T);

begin

New (p);// виділяємо пам'ять для кореня дерева

p ^ .value:=n;// присвоюють ваем значення в корінь

p ^ .Left:=nil;// інніціалізація лівої і правої гілки

p ^ .Right:=nil

end;

begin

if Root=nil Then

CreateNode (Root, X)//якщо дерево ще не створено, то створюємо його

else

with Root ^ do begin//проходимо по всій записи

if value lt; X then

Insert (Right, X)//якщо значення менше, то вставляємо гілку зліва

else if value gt; X Then

Insert (Left, X);// якщо більше, то справа

end;

end; FindInTree (root: ttree; key: integer): Boolean;// пошук в дереві

var p ,: TTree;

begin

p:=root;

while p lt; gt; nil do begin//якщо гілка не порожня

if key=p ^ .value then begin//якщо вузол з таким ключем є

FindInTree:=true;// то присвоюємо правда

exit;// виходимо

end;

if key lt; p ^ .value then//якщо менше то

p:=p ^. left {спуститися вліво}

else

p:=p ^. right; {інакше спуститися вправо}

end;

FindInTree:=false;// інакше брехня; initializate: integer;// інніціалізація

s: string;// прочитується рядок

i, x, bufer1: integer;

assign (input, base.txt );// база даних номер прізвище група

reset (input);// відкриваємо для читання

i:=0;

while not EOF (input) do//поки не кінець файлу робимо

begin

i:=i + 1;// лічильник записів +1

readln (input, s);// читаємо рядок

x:=pos ( , s);// пошук пробілу

val (copy (s, 1, x - 1), base [i] .number, bufer1);// забиваємо в iй елемент бази номер заліковки

delete (s, 1, x);// удялять в рядку все до пробілу

x:=pos ( , s);// пошук пробілу

base [i] .Surename:=copy (s, 1, x - 1);// забиваємо iю прізвище

delete (s, 1, x);

x:=pos ( , s);

base [i] .NameGroup:=s;// номер групи

end;

close (input);// закриваємо вхідний файл

initializate:=i;// записуємо у функцію кількість елементів у вхідному файлі

end; FindInBase;// функція знайти в базі

Counter, operation, number: integer;

s: string;

i: integer;

Writeln ( Введіть дані для пошуку );// меню

Writeln ( 1 - номер заліковки );

Writeln ( 2 - прізвище студента );

readln (operation);// читаємо опреацию

if (operation=1) then//якщо опреацию 1

begin

Writeln ( Введіть номер заліковки );// номер заліковки

readln (number);// читаємо цей номер

for i:=1 to NumberOfRecords do if Base [i] .Number=number then//від 1 до кількості елементів, якщо

//шуканий збігається зі знайденим

begin

Writeln (Base [i] .number, , base [i] .Surename + + base [i] .NameGroup);

//виводимо на екран елемент повністю

counter:=counter + 1;// лічильник +1

end; ...


Назад | сторінка 2 з 4 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Base and Superstructure
  • Реферат на тему: Номер люкс
  • Реферат на тему: Основні системи побудови мережі 10 Base T
  • Реферат на тему: Розробка проекту локальної обчислювальної мережі на основі технології 1000 ...