Головна

Алгоритми роботи зі списками

  1. Divide; несталий і перехідні режими роботи насосів
  2. I. КУРСОВІ РОБОТИ
  3. II. ДИПЛОМНІ РОБОТИ
  4. II. Стандарти роботи комерції
  5. IV. Порядок роботи комісії
  6. IV.1 Обсяг дисципліни і види навчальної роботи
  7. IV.2 Розподіл годин за темами та видами навчальної роботи.

1. Побудова спискузводиться до послідовного додаванню елементів в спочатку порожній список. На порожній список вказує (head = nil). Нехай потрібно створити список слів, що вводяться з клавіатури. Останнє слово в списку - «end».

Type

psp = ^ tsp;

tsp = Record

wd: string; {У нашому прикладі інформаційне по

ле має тип string}

next: psp

End;

Var

head, p: psp;

sl: string;

Begin

New (p);

head: = p;

p ^ .next: = nil;

Readln (sl);

p ^ .wd: = sl;

while sl 'end'

Do begin

Readln (sl);

New (q);

q ^ .wd: = sl;

p ^ .next: = q;

q ^ .next: = nil;

p: = q

End;

End;

2. Перегляд і друк списку.Нехай потрібно написати процедуру Print_Spisok друку елементів списку, створеного в алгоритмі 1.

Procedure Print_spisok;

begin

p: = head;

while p nil

Do begin

writeln ((p ^ .wd);

p: = p ^ .next

End

End;

3. Пошук елемента в списку.Визначити, чи є в списку (алгоритм I) слово «begin» і якщо є, то скільки разів зустрічається. До опису алгоритму 1 додамо: var k: integer;

...

begin

p: = head;

while p nil

Do begin

if p ^ .wd = 'begin'

Then inc (k);

p: = p ^ .next

End;

if k = 0

then writeln ('Такого елемента немає')

else writeln ('Слово', sl, 'зустрічається', k, 'раз')

End;

4. Видалення першого елемента списку.Необхідно: 1) пересунути покажчик head на наступний елемент; 2) звільнити пам'ять; 3) звільнити пам'ять, зайняту видаляється елементом.

Begin

p: = head;

head: = p ^ .next;

Dispose (p);

Print_Spisok

End;

5. Видалення останнього елемента списку.До розділу описів алгоритму 1 додамо допоміжну змінну q типу psp.

begin

p: = head;

q: = p ^ .next;

while q ^ .next nil



Попередня   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   Наступна

ПРОГРАМНІ МОДУЛІ | Структура програмного модуля | Interface | Посилання на модулі | ДИНАМІЧНА ПАМ'ЯТЬ | адресація пам'яті | типізовані покажчики | New (s); | HEAPEND містить адресу кінця купи | New (pt1); New (pt2); Mark (M1); |

© 2016-2022  um.co.ua - учбові матеріали та реферати