МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Dispose(p)End Else Begin while (p^.next<>nil) and (p^.next^.inf<>a) do p:=p^.next; if p^.next=nil then writeln ('такого елементу немає') Else Begin q:=p^.next; p^.next:=q^.next; Dispose(q) End end; Тема: Двонапрямлені лінійні списки. У двонапрямлених списках і в розглянутих раніше однонапрямлених елементи утворюють лінійну структуру даних з послідовним доступом, але на відміну від них, рух по списку можливий у двох напрямках, тому кожен елемент міститиме, окрім інформаційного поля, два вказівні поля: на наступний і попередній елементи. Список матиме два фіксованих вказівники: на перший – first; на останній – last. Оскільки рух по списку можливий у двох напрямках, то переміщення від first до last здійснюється через вказівник next; від last до first через вказівник prev, тому формування списку за правилом стеку від first до last – це та ж сама черга від last до first і навпаки.Як і в однонапрямлених списках над двонапрямленими виконують ті ж самі операції. Оголошення структури списку може мати вигляд: TYPE list2=^el_list2; el_list2=record inf:integer; Next,prev:list2 END;
writeln('введіть кількість елементів у списку'); readln(n); first:=nil; last:=nil; for i:=1 to n do Begin writeln('введіть елемент'); readln(a); new(p); p^.inf:=a; if last=nil then last:=p; p^.next:=first; first^.prev:=p; first:=p end; Перегляд. Здійснюється аналогічно, тільки може здійснюватися в обоз напрямках.
PROCEDURE RESIV; BEGIN p:=first; while p^.next<>nil do Begin write(p^.inf,' '); p:=p^.next end; writeln(p^.inf,' ') END; Пошук. p:=first; writeln('введіть шуканий елемент'); readln(a); i:=0; while (p<>nil) do Begin inc(k); if p^.inf=a then Begin i:=i+1; Writeln('під № ',k) end; p:=p^.next end; if i=0 then writeln ('немає') Else writeln ('кількість ',i) Вставка перед на відмінну від однонапрямленого списку аналогічна вставці після з точністю переміни вказівників prev і next. write('введіть елемент, після якого потрібно вставити новий'); readln(n); write('введіть новий елемент'); readln(a); p:=first; while p<>nil do Begin if p^.inf=n then Begin new(q); q^.next:=p^.next; p^.next:=q; q^.prev:=p end; q^.inf:=a; p:=p^.next end;
Вилучення. Як і в попередніх випадках видалення елементу не потребує складного пошуку із порівнянням через один елемент, як у однонапрямлених списках. write('введіть елемент, який потрібно вилучити'); readln(a); p:=first; while p<>nil do Begin if p^.inf=a then Begin if p=first then Begin first:=p^.next; p^.prev:=nil End Else Begin if p^.next<>nil then Begin p^.next^.prev:=p^.prev; p^.prev^.next:=p^.next^.next End Else Begin p^.prev^.next:=nil end; end; End Else p^.prev^.next:=p; p:=p^.next end; Тема: Бінарні дерева. Особливим видом розгалужених списків є дерева. Особливістю таких динамічних структур даних є те, що кожен елемент має декілька вказівних полів (бінарні, тернарне, п-арні дерева). На відмінну від двонапрямлених списків, дерева не мають лінійної структури. Підлеглість елементів має розгалужену структуру – це означає, що такі списки мають один верхній елемент – голову. Він має декілька підлеглих елементів, які в свою чергу мають декілька елементів, причому на будь-якому рівні всі вказівники повинні бути зв’язані з іншими елементами, якщо ж ні, то в таких випадках вони вказують в nil. Доступ до елементів дерева здійснюється послідовно з вершини дерева через фіксований вказівник top. Елементи дерева, обидва вказівники яких зв’язані із підлеглими елементами, називають вузловими вершинами або гілками. Елементи дерева, обидва вказівники яких вільні, називаються листками або висячими вершинами. Елементи дерева, один з вказівників яких вільний, називаються напівисячими вершинами. Шириною бінарного дерева називається кількість вузлів від крайнього лівого до крайнього правого елементу. Висотою бінарного дерева називається максимальна кількість рівнів елементів від вершини дерева до найдальшого листка.
|
||||||||
|