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

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

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

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

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

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

Міністерство освіти і науки України НУ „Львівська політехніка” Кафедра ЕОМ  ЗВІТ про виконання лабораторної роботи №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:12-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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