DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Структура даних черга

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Інші
Група:
КІ

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України НУ „Львівська політехніка” Кафедра ЕОМ  ЗВІТ про виконання лабораторної роботи №4 на тему: ”Структура даних черга ” Студента групи КІ-17 Кохалика Романа Прийняв: Хедик Л. В. ——Львів 2004—— Тема: Структура даних черга. Мета: Вивчити програмну реалізацію черг на мові Turbo Pascal. Короткі теоретичні відомості Черга — це впорядкований набір елементів, що можуть вилучатися з одного кінця, який називається початок черги (голова, Head) і додаватись у другий кінець, який називається кінцем черги (хвіст, Tail). Над чергою визначені дві основні процедури: Вставка (Insert) і вилучення (Remove). Приклади цих процедур подано нижче. Завдання до роботи. Реалізувати програмно сортувальну чергу по зростанню і показати вставку в неї елемента. Текст програми: PROGRAM Queue; USES CRT; TYPE TInfo=integer; Plist=^Elem; Elem=record info:Tinfo; next:plist; end; QType=record Head,tail:Plist; end; Procedure Init (Var Q:qtype); Begin Q.head:=nil; Q.tail:=nil; end; Function Empty (Q:qtype):boolean; Begin Empty:=q.head=nil; end; Procedure add (Var q:qtype; x:tinfo); Var p:Plist; Begin If MaxAvail < sizeOf(x) then Writeln ('Error!') else begin New(p); P^.info:=x; p^.next:=nil; If q.tail=nil then q.head:=p else q.tail^.next:=p; q.tail:=p; end; end; Function Rem (Var q:qtype):TInfo; Var p:PList; Begin If empty(q) then write ('Error !') else begin New(p); p:=q.head; rem:=q.head^.info; q.head:=q.head^.next; dispose(p); end; end; procedure print (l:PList); var tmp:Qtype; p:Plist; begin p:=l; if p<>nil then begin print(p^.next); write(p^.info,' '); end; end; Procedure Insert(Var q:qtype;var tmp:qtype); Var el,del : Tinfo; i : integer; begin Write ('Введіть елемент, який потрібно вставити'); readln (el); i:=0; while (not empty(q)) do begin inc(i); del:=rem(q); if ((el > del) and (i=1)) or (el=del) then begin add(tmp,el); add(tmp,del); continue; end; if ((el < del) and (el > q.head^.info)) or ((el < del) and (empty(q)))then begin add(tmp,del); add(tmp,el); continue; end else begin add(tmp,del); continue; end; end; q:=tmp; init(tmp); end; VAR v:integer; Q,tmp : Qtype; el, code : integer; filename : string; f : text; s : string[4]; b : boolean; BEGIN CLRSCR; filename:='D:\home\ki-1\pascal\Lucky\FQueue.txt'; assign(f,filename); reset(f); init(q); while (not eof(f)) do begin read(f,s); val(s,el,code); add(q,el); end; repeat writeln; writeln (' Menu'); writeln ('"1" – Показати чергу;'); writeln ('"2" – Вставити елемент;'); writeln ('"3" – Видалити елемент;'); writeln ('"0" – Вихід'); Write ('Ваш вибір: '); readln (v); Case V of 1: Print (q.head); 2: insert (q,tmp); 3: el:=rem(q); 0: break; end; until v=0; END. Висновок: на цій лабораторній роботі я розглянув структуру даних черга.
Антиботан аватар за замовчуванням

29.12.2011 17:55

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!