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

Двозв’язні списки

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

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Програмування

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

Міністерство освіти і науки України Хмельницький національний університет Кафедра системного програмування Лабораторна робота №2 з програмування на тему: «Двозв’язні списки» Лабораторна робота №2 Тема: двозв'язні списки. Мета: навчитися програмувати з використанням вказівників та динамічних змінних, створювати та опрацьовувати двозв'язні списки. Завдання Дано «покажчик» на один з елементів непустого двозв'язного списку. Видалити зі списку даний елемент і вивести два «покажчика»: на елемент, що передує вилученому і на елемент, що іде за вилученим (один або обидва цих елементи можуть бути відсутніми; для відсутніх елементів виводити nil). Після видалення елемента зі списку звільнити пам'ять, займану цим елементом. uses crt; type vkaz=^spysok; spysok=record num:integer; next, last:vkaz end; procedure add(var a,head,tail:vkaz; D:integer); begin if a=nil then begin new(a); a^.next:=nil; a^.last:=nil; head:=a; end else begin new(a^.next); a^.next^.last:=a; a:=a^.next; a^.next:=nil; end; a^.num:=D; tail:=a; end; procedure create(var a,head,tail:vkaz; var n:integer); var i,D:integer; begin repeat write('vvedit kilkist chysel: '); readln(n) until n>0; for i:=1 to n do begin add(a,head,tail,random(50)); write(a^.num,' '); end; writeln; end; procedure Search(var a:vkaz; head:vkaz; var D:integer); var p:boolean; begin repeat write('vvedit element dlja vydalennja: '); readln(D); a:=head; while (a<>nil) and (d<>a^.num) do a:=a^.next; if a^.num=D then p:=true until p; end; procedure DelEl(var a:vkaz; head:vkaz); var temp:vkaz; D:integer; begin search(a,head,D); if (a^.last=nil) and (a^.next=nil) then begin writeln('poperednij element=NIL'); writeln('nastupnyj element=NIL'); temp:=a; a:=nil; dispose(temp); end else begin if (a^.last=nil) or (a^.next=nil) then begin if a^.last=nil then begin writeln('poperednij element=NIL'); writeln('nastupnyj element: ',seg(a^.next^),ofs(a^.next^)); temp:=a; a^.next^.last:=nil; dispose(temp); end; if a^.next=nil then begin writeln('nastupnyj element=NIL'); writeln('poperednij element: ',seg(a^.last^),ofs(a^.last^)); temp:=a; a^.last^.next:=nil; dispose(temp); end; end else begin writeln('poperednij element: ',seg(a^.last^),ofs(a^.last^)); writeln('nastupnyj element: ',seg(a^.next^),ofs(a^.next^)); temp:=a; a^.last^.next:=a^.next; a^.next^.last:=a^.last; dispose(temp); end; a:=head; while a<>nil do begin write(a^.num,' '); a:=a^.next; end; end; end; procedure free(var a,tail:vkaz); var temp:vkaz; begin if a<>nil then begin a:=tail; while a<>nil do begin temp:=a; a:=a^.last; dispose(temp); end; end else dispose(a); end; var el,head,tail:vkaz; n,d:integer; begin clrscr; randomize; create(el,head,tail,n); DelEl(el,head); free(el,tail); repeat until keypressed; end. Результати виконаної програми: / / / Висновок. Виконавши лабораторну роботу, я закріпив навички роботи з вказівниками, динамічними змінними та динамічними структурами даних; засвоїв алгоритми створення двозв’язного списку з різною кількістю елементів та додавання, пошуку і видалення елементів цього списку.
Антиботан аватар за замовчуванням

28.03.2013 22:16

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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