Динамические структуры данных
Mix82
◦
. [Dynamic2] Дан адрес P
1
записи типа TNode. Эта запись связана по-
лем Next со следующей записью того же типа, она, в свою очередь, —
со следующей, и так далее до записи, поле Next которой равно
NIL
(та-
ким образом, возникает цепочка связанных записей). Вывести значения
полей Data для всех элементов цепочки, длину цепочки (то есть число ее
элементов) и адрес ее последнего элемента.
Mix83
◦
. [Dynamic3] Дано число D и указатель P
1
на вершину непустого сте-
ка. Добавить элемент со значением D в стек и вывести адрес P
2
новой
вершины стека.
Mix84
◦
. [Dynamic5] Дан указатель P
1
на вершину непустого стека. Извлечь
из стека первый (верхний) элемент и вывести его значение D, а также
адрес P
2
новой вершины стека. Если после извлечения элемента стек
окажется пустым, то положить P
2
=
NIL
. После извлечения элемента из
стека освободить память, занимаемую этим элементом.
Mix85
◦
. [Dynamic8] Даны указатели P
1
и P
2
на вершины двух непустых сте-
ков. Переместить все элементы из первого стека во второй (в результате
элементы первого стека будут располагаться во втором стеке в поряд-
ке, обратном исходному) и вывести адрес новой вершины второго стека.
Операции выделения и освобождения памяти не использовать.
Mix86
◦
. [Dynamic10] Дан указатель P
1
на вершину непустого стека. Создать
два новых стека, переместив в первый из них все элементы исходного
стека с четными значениями, а во второй — с нечетными (элементы в
новых стеках будут располагаться в порядке, обратном исходному; один
из этих стеков может оказаться пустым). Вывести адреса вершин полу-
ченных стеков (для пустого стека вывести
NIL
). Операции выделения и
Избранные задания из различных групп
139
освобождения памяти не использовать.
Mix87
◦
. [Dynamic11] Дан указатель P
1
на вершину стека (если стек пуст, то
P
1
=
NIL
). Также дано число N (> 0) и набор из N чисел. Описать тип
TStack — запись с одним полем Top типа PNode (поле указывает на вер-
шину стека) — и процедуру Push(S, D), которая добавляет в стек S новый
элемент со значением D (S — входной и выходной параметр типа TStack, D
— входной параметр целого типа). С помощью процедуры Push добавить
в исходный стек данный набор чисел (последнее число будет вершиной
стека) и вывести адрес новой вершины стека.
Mix88
◦
. [Dynamic30] Дан указатель P
1
на начало непустой цепочки элементов-
записей типа TNode, связанных между собой с помощью поля Next. Ис-
пользуя поле Prev записи TNode, преобразовать исходную (односвязную)
цепочку в двусвязную, в которой каждый элемент связан не только с по-
следующим элементом (с помощью поля Next), но и с предыдущим (с
помощью поля Prev). Поле Prev первого элемента положить равным
NIL
.
Вывести указатель на последний элемент преобразованной цепочки.
Mix89
◦
. [Dynamic49] Дан указатель P
1
на первый элемент непустого двусвяз-
ного списка. Перегруппировать его элементы, переместив все элементы с
нечетными номерами в конец списка (в том же порядке) и вывести указа-
тель на первый элемент преобразованного списка. Операции выделения
и освобождения памяти не использовать, поля Data не изменять.
Mix90
◦
. [Dynamic55] Дан указатель P
1
на первый элемент непустого двусвяз-
ного списка. Преобразовать список в циклический, связав его последний
элемент с помощью поля Next с первым, а первый элемент с помощью
поля Prev — с последним, и вывести указатель на элемент, который был
последним элементом исходного списка.
140
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
Достарыңызбен бөлісу: |