Добавяне на елемент към края на списъка
6. Премахване на елемент от списъка. Там са възможни четири случая:
а) Премахване на един елемент След отстраняване списъка елемент става празен, затова е необходимо не само да се освободи паметта разпределени за елемента настаняване, но в първия списък показалеца влиза nill: а) да се разпорежда (първо); б) първа: = nill;
г) отстраняване на последния елемент а) х: = Pred ^ .adr; б) Предвиждане ^ .adr: = нула; в) разпорежда (х);
Задача 1. Създаване на програма за създаване на свързан списък по време на въвеждането на данните.
Купчината се нарича динамична структура от данни, добавяне на компонент, в който компонентите и елиминирането на които е направена от единия край, наречени на върха на купчината. Купчината работи на принципа: LIFO (Last-In, First-Out) - последна входяща, първи обслужен.
Обикновено над купища ще се представят три дейности:
- първоначалното образуване на стека (напишете първия компонент);
- добавяне на компоненти на пакета;
- избор компоненти (отстраняване).
За образуването на стека и работата с него е необходимо да има две променливи от тип указател, първият от които определя горната част на стека, а втората - на добавка. Нека описание на тези променливи има следния вид:
Var pTop, pAux: Стрелката;
където pTop - стека указател;
pAux - спомагателен показалеца.
Пример 2. Създайте програма, която представлява купа, добавя случаен брой компоненти, а след това чете всички компоненти и ги показва на екрана като данни символен низ за да предприеме. Въвеждане на данни - клавиатура с дисплей, в знак на края на входа - низ от символи END.
Програма, стека; използва CRT тип Алфа = String [10]; PComp = ^ Comp; Comp = Запис на SD: Alfa; pNext: край PComp; Var pTop: PComp; SC: Алфа; Процедура CreateStack (VAR pTop: PComp; Var SC: Alfa); започва нов (pTop); pTop ^ .pNext: = NIL; pTop ^ .sD: = SC край; Процедура AddComp (Var pTop: PComp; Var SC: Alfa); Var pAux: PComp; започнем NEW (pAux); pAux ^ .pNext: = pTop; pTop: = pAux; pTop ^ .sD: = SC край; Процедура DelComp (VAR pTop: PComp; Var SC: ALFA); започне SC: = pTop ^ .sD; pTop: = pTop ^ .pNext край; започнем Clrscr; writeln ( 'въведете низ'); readln (SC); CreateStack (pTop, SC); Повтарям writeln ( 'Въведете низ'); readln (SC); AddComp (pTop, SC), докато НС = 'края; writeln ( "Резултати ОТЧИТАНЕ'); повтаря DelComp (pTop, SC); writeln (SC); докато pTop = NIL; readkey; край.
Задачи за изпълнение:
1. Описанията на програмата
Var Р, Q: ^ число; R: ^ знак;
Кое от следното изявление обърка и защо?