Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прога экз 2 сем.docx
Скачиваний:
0
Добавлен:
14.12.2025
Размер:
1.99 Mб
Скачать

Оператор new

Он выделяет блок памяти для размещения переменной или массива (необходимо указывать тип и, в случае массива, размерность).

New type_name [(инициатор)]; или new (type_name [(инициатор)]);

new int; — выделяет память под int, возвращает указатель

new double(3.14); — выделяет и инициализирует значением.

При нехватке памяти (void*)0.

Оператор delete

Он освобождает ранее выделенную память. Размер занятого блока для правильной работы delete записывается в его начало и обычно занимает дополнительно 4 байта.

Используется только с указателями, полученными от new.

Пример:

int* u_i = new int;

double* u_d = new double(3.1415);

if (!(u_i && u_d)) {

cout << "Не хватает памяти!";

return 1;

}

delete u_i;

delete u_d;

Вопрос 25. Связные динамические структуры. Списки. Двусвязные списки

Динамические структуры данных — это любая структура данных, занимаемый объем памяти которой не является фиксированным.

Список − это набор динамических элементов (чаще всего переменных типа «структура»), связанных между собой каким-либо способом. В зависимости от вида связей списки бывают линейными, кольцевыми, односвязными и двусвязными, нелинейными и т. дstruct L

{ int info;

struct L *Next; }

Обращение к динамической переменной происходит через ссылочную переменную, которая содержит адрес такой переменной. Под ссылочную переменную компилятор отводит место в памяти; эта переменная имеет имя и явно упоминается в программе. Ссылочные переменные образуют тип данныхссылки или указатели.

Линейный двусвязный (двунаправленный) список отличается от односвязного тем, что в нем каждый элемент связан не только со следующим элементом, но и с предыдущим. И первый, и последний элементы списка содержат признак конца списка NULL:

Пример:

class Node

{ public:

int number;

Node* next;

Node* last; };

Вопрос 26. Связные динамические структуры. Очередь. Односвязные списки

Динамические структуры данных — это любая структура данных, занимаемый объем памяти которой не является фиксированным.

Очередь − динамическая структура или дисциплина обслуживания, организованная по принципу FIFO (first in – first out). "Первым пришел – первым ушел".

Основные операции для работы с очередями: добавление нового элемента в конец очереди (занесение заказа на обслуживание); удаление элемента из начала очереди для его обслуживания, при этом выбранный элемент, естественно, исключается из очереди. Таким образом, в очереди доступны только ее начало и конец.

Очередь можно представить в виде трубы с двумя открытыми концами, куда помещаются «бочонки» – элементы. Движение по трубе возможно лишь в одном направлении:

Линейные списки (односвязные) – это данные динамической структуры, представляющие собой совокупность линейно-связанных однородных элементов, для которых разрешены следующие действия:

1) добавление элемента в начало;

2) добавление элемента в конец (хвост) списка (частный случай вставки);

3) вставка элемента между двумя любыми другими элементами;

4) исключение элемента (удаление любого, как крайнего, так и среднего элемента списка).

Соседние файлы в предмете Программирование