Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры 18 из 50, 1ый семестр (Серебряная) [1850 вопросов].doc
Скачиваний:
82
Добавлен:
15.06.2014
Размер:
100.86 Кб
Скачать

11. Понятие динамических структур данных. Возможности, предоставляемые использованием динамических структур данных.

Память под динам. величины отводится во время выполнения программы. Раздел памяти, распределяемый динамически – динамическая память.

Преимущества:

1)Увеличение объёма обрабатываемых данных.

2)Если нет надобности в переменных, то память можно освободить.

3)Возможность создавать структуры переменного размера.

Работа с динамикой замедляет работу программы, т. к. доступ происходит в 2 шага: поиск указателя и поиск величины.

Работа с динам. величинами связана с использованием типа данных – ссылочного типа. Величины, имеющие ссыл. тип – указатели. Указатель содержит адрес поля в дин. памяти, а сам располагается в статической.

12.Абстрактный тип данных «список». Реализация списков с помощью указателей. Привести рисунок и определить структуру связанного списка.

Способ организации данных связыванием элементов в цепочку. Списки очень гибки.Указатели позволяют связать элементы списка. Такая реализация освобождает от использ. непрер. области памяти и необходимости перемещения эл-тов при вставке и удалении.Цена этого – доп. память для указателей.Если список состоит из эл-тов a[1],a[2],..,a[n], то

для a[i] имеется указатель на ячейку a[i+1].

Описание:type

list=^celltype;

celltype = record

element:elementtype;

next:celltype;

end;

position=^celltype;

procedure insert(x:elementtype;p:position);

var

temp:position;

begin

temp:=p^.next;

new(p^.next);

p^.next^.element:=x;

p^.next^.next:=temp;

end;

procedure delete(p:position);

begin

p^.next:=p^.next^.next;

end;

13.Абстрактный тип данных «очередь». Реализация очереди с помощью указателей. Привести рисунок и определить абстрактный тип «очередь».

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

Описание:type

celltype=record

element:elementtype;

next:^celltype;

end;

queue = record

front,rear:^celltype;

end;

procedure makenull(var q:queue);

begin

new(q.front);

q.front^.next:=nil;

q.rear:=q.front;

end;

procedure dequeue(var q:queue);

begin

if q.front=q.rear then

Writeln(‘Очередь пуста’)

else

q.front:=q.front^.next;

end;

procedure enqueue(x:elementtype;var q:queue);

begin

new(q.rear^.next);

q.rear:=q.rear^.next;

q.rear^.element:=x;

q.rear^.next:=nil;

end;