я варіанту б) проблему вирішити можна. Але якою ціною?! Наведемо можливу програмну реалізацію зміни розміру динамічного масиву:
// нехай k - новий розмір массіваk = n + 1;
// виділяємо нову ділянку пам'яті необхідного розміру
int * t = new int [k];
// переписуємо в нього вміст вихідного масиву x2
for (int i = 0; i
t [i] = x2 [i];
// звільняємо пам'ять, на яку вказував x2 [] x2;
// налаштовуємо x2 на нову ділянку пам'яті = t;
Як не складно зрозуміти, такий підхід до вирішення проблеми буде займати занадто багато машинного часу. Загалом-то нерозумно виділяти заново пам'ять під цілий масив, коли нам був потрібний додатковий ділянка всього для одного елемента. br/>
.2 Визначення та класифікація динамічних структур даних
Для того, щоб у процесі виконання програми довільно додавати і видаляти дані, необхідно організувати наші дані не в масив, а в щось інше. Якщо до елемента даних додати ще і покажчик, в якому буде зберігатися адресу якогось іншого елемента, то це і буде кардинальним вирішенням проблеми. Така організація представлення і збереження даних називається динамічною структурою даних .
Кожен елемент динамічних структур даних складається з власне даних і одного або декількох покажчиків, що посилаються на аналогічні елементи. Це дозволяє додавати в динамічну структуру нові дані або видаляти якісь з наявних, не зачіпаючи при цьому інші елементи структури. p align="justify"> Крім того, динамічні структури дозволяють нам організувати дані так, щоб їх уявлення в програмі було максимально наближене до того, як ці дані виглядають в реальності. Так, для моделювання обслуговування черги до каси в магазині найкраще підійде динамічна структура даних під назвою В«чергуВ», а не горезвісний масив, а для представлення мережі автомобільних доріг масив взагалі неприйнятний. Тут потрібна саме В«мережаВ». p align="justify"> Динамічні структури даних бувають лінійні і нелінійні. У лінійної динамічної структурі дані зв'язуються в ланцюжок. До лінійним структурам відносяться списки (однозв'язний, двохзв'язной, кільцеві), стеки, черги (односторонні, двосторонні, черги з пріоритетами). Організація нелінійних структур складніша. Нелінійні структури представляються, як правило, у вигляді дерева (кожен елемент має деяку кількість зв'язків, наприклад, в бінарному дереві кожен елемент ( вузол) має посилання на лівий і правий елемент).
Розглянемо більш детально деякі види динамічних структур.
.3 Лінійни...