Курсовая работа: Списки стеки очереди в C

Для роботи із пам’яттю в С++ можна використовувати досить багато операцій та функцій, це і malloc, calloc, free та інші. Проте найбільш зручними є операції new і delete.

Операція new і delete забезпечують біль зручні засоби для реалізації динамічного розпроділення динамічної пам’яті.

Операція new служить для виділення пам’яті. Синтаксично допускається 3 способи її використання :

1. new type_name

Приклад: float *r=new float;

При такому оголошенні r буде вказівником на значення типу float, причому вказувати він буде на початок вже виділеної області пам’яті розміром float, на відміну від оголошення float *r;, де пам’ять не виділяється.

2. new (type_name)

Приклад: float *r=new (float);

Цей випадок аналогічний попередньому.

3. new type_name [expression]

Приклад: float*r=new float [20];

Цей випадок показує що вказівник r вказує на масив із десяти елементів типу float.

Використовуючи операцію new вказівнику вже при ініціалізації можна присвоїти початкове значення:

int *d = new int(12);

Операція delete служить для звільнення пам’яті в “кучі”. Відповідно до операції new, синтаксично допускаються такі способи її використання

1. delete var_name;

Приклад: float*r=new float [20];

delete r;

2. delete [expr] var_name

Приклад: float*r=new float [20];

delete [20] r;

Відмітимо, що дія в першому та другому випадках аналогічна. Виділивши пам’ять , наприклад, так:

float *r = new float [20];

можемо звільнити її будь-яким з наступних способів:

delete [200] r; delete [20] r; delete [10] r; delete [ ] r; delete r;

Якщо вказівник залишається не видаленим із пам’яті, це може призвести до непоправних наслідків, аж до збою у роботі ОС.

2.2 Стеки

Для роботи зі стеком достатньо мати покажчик head на його вершину та допоміжний покажчик (наприклад current) на елемент стеку. Наведемо алгоритми основних операцій зі стеком – вставка та видалення його елемента.

Алгоритм вставки елемента до стеку

К-во Просмотров: 658
Бесплатно скачать Курсовая работа: Списки стеки очереди в C