n="justify"> begin (curr);// виділити пам'ять для елемента списку
curr ^. f_name: = Сидоров ; ^. l _ name: = Іван ;
// додавання в початок списку
curr ^. next: = head; head: = curr;
end;
В
Малюнок 3. Додавання елементів до списку
Висновок цілого списку:
var: TPStudent;// поточний елемент списку: integer;// довжина (кол-во елементів) списку: string;// строкове представлення списку: = 0; st: ='';: = head;// покажчик на перший елемент списку
while curr <> NIL do begin: = n + 1;: = st + curr ^. f_name + '' + curr ^ .1 _name + # 13;: = curr ^. next;//покажчик на наступний елемент;
Додавання елемента до списку виконує процедура add, яка створює динамічну змінну-запис, привласнює її полям значення, відповідні вмісту полів введення діалогового вікна, і коригує значення покажчика head.
Видалення елемента зі списку
Для того щоб видалити вузол, необхідно скоригувати значення покажчика вузла, який знаходиться перед видаляється вузлом (малюнок 4).
В
Малюнок 4. Видалення елемента зі списку. br/>
Оскільки вузол є динамічної змінної, то після виключення вузла зі списку займана ним пам'ять повинна бути звільнена. Звільнення динамічної пам'яті, або, як іноді кажуть, "знищення змінної", виконується викликом процедури dispose. У процедури dispose один параметр - покажчик на динамічну змінну. Пам'ять, займана цією динамічної змінної, повинна бути звільнена. Для прикладу:
Var р: ^ integer;
begin
new (p);
{інструкції програми} (p);
.2 Постановка завдання
Розробити програмне засіб, який має список замовлень на купівлю товарів на наступну добу. Кожен запис списку містить: номер замовлення, адресу доставки, час доставки (від ..., до ...), обсяг замовлення в м 3 , вага в кг . Також є список кур'єрів. Кожен запис списку містить: номер кур'єра, ПІБ кур'єра, час роботи (від ..., до ...), вантажопідйомність автомобіля, max обсяг вантажу за одне перевезення. Потрібно:
В· Найбільш ефективно розподілити замовлення між кур'єрами;
В· Видати список всіх замовлень кур'єра;
В· Передбачити можливість додавати, видаляти і коригувати запису зі списків, а так само переглядати...