fy">
while (pCurrent lt; gt;
nil )
and ( pCurrent ^. inf lt; gt; задане значення)
do pCurrent:=pCurrent ^. next;
if pCurrent= nil then Елементу немає else елемент знайдено;
Видалення заданого елемента включає:
· пошук видаляється елемента з визначенням адреси елемента-попередника (для цього вводиться ще одна допоміжна посилальна змінна pPrev, ініційована адресою заголовка і змінює своє значення всередині циклу)
· якщо видаляється елемент знайдений, то змінюється посилальна частина його попередника:
pPrev ^. next:=pCurrent ^. Next
· видаляється елемент обробляється необхідним чином, тобто або звільняється займана ним пам'ять, або він включається в допоміжний список
Додавання нового елемента ПІСЛЯ заданого включає:
· пошук заданого елемента за допомогою допоміжного покажчика pCurrent
· виділення пам'яті для нового елемента за допомогою ще одного покажчика pTemp
· формування полів нового елемента, зокрема - настройка посилальної частини
pTemp ^. next:=pCurrent ^. next;
· зміна посилальної частини поточного елемента на адресу нового елемента
pCurrent ^. next:=pTemp;
Додавання нового елемента ПЕРЕД заданих включає:
· пошук заданого елемента з одночасним визначенням елемента-попередника (використовуються покажчики pCurrent і pPrev)
· виділення пам'яті для нового елемента за допомогою ще одного покажчика pTemp
· формування полів нового елемента, зокрема - настройка посилальної частини: pTemp ^. next:=pCurrent;
· зміна посилальної частини елемента-попередника на адресу нового елемента: pPrev ^. next:=pTemp;
Якщо при використанні списку часто доводиться додавати або видаляти елементи в кінці списку, то для зменшення витрат на перегляд всього списку можна ввести другий основний покажчик - на останній елемент списку. Це потребує зміни процедур видалення і додавання для відстеження цього покажчика.
Досить часто використовується впорядкована різновид лінійного списку, в якому елементи шикуються відповідно до заданим порядком, наприклад - цілі числа за зростанням, текстові рядки за алфавітом. Для таких списків змінюється процедура додавання - новий елемент повинен вставлятися в відповідне місце для збереження порядку елементів. Наприклад, якщо порядок елементів визначається цілими числами по зростанню, то при пошуку відповідного місця треба знайти перший елемент, більший заданого і виконати вставку ПЕРЕД цим елементом.
контейнер користувач лінійний список
2. Опис основних понять і механізмів ООП
Історія
Об'єктне і об'єктно-орієнтоване програмування (ООП) виникло в результаті розвитку ідеології процедурного програмування, де дані і підпрограми (процедури, функції) їх обробки формально не пов'язані. Крім того, в сучасному об'єктно-орієнтованому програмуванні часто велике значення мають поняття події (так зване подієво-орієнтоване програмування) і компонента (компонентне програмування).
Першою мовою програмування, в якому були запропоновані принципи об'єктної орієнтованості, була Симула. У момент своєї появи (в 1967 році), ця мова програмування запропонував воістину революційні ідеї: об'єкти, класи, віртуальні методи та ін., Проте це все не було сприйнято сучасниками як щось грандіозне. Тим не менше, більшість концепцій були розвинені Аланом Кейем і Деном Інгаллс в мові Smalltalk. Саме він став першим широко поширеним об'єктно-орієнтованою мовою програмування. В даний час кількість прикладних мов програмування (список мов), що реалізують об'єктно-орієнтовану парадигму, є найбільшим по відношенню до інших парадигм. В області системного програмування дотепер застосовується парадигма процедурного програмування, і загальноприйнятою мовою програмування є мова C. Хоча при взаємодії системного і прикладного рівнів операційних систем помітний вплив стали надавати мови об'єктно-орієнтованого програмування. Наприклад, однією з найбільш поширених бібліотек мультиплатформенного програмування є об'єктно-орієнтована бібліотека Qt, написана на мові C ++.
Головні поняття і різновиди
Структура да...