Система задач и упражнений по языку программирования Pascal. Часть 2 - 29 стр.

UptoLike

29
for i:=2 to 20 do begin
new(y); y.^f:=A[i]; x.^next:=y; y.^previous:=x end; last:=x; x.^next:=nil end;
(6) добавление элемента z в двунаправленный список после элемента g (g не
последний элемент)
begin
x:=first;
while x<>nil do
if x.^f<>g then x:=x.^next else begin
new(y); y.^f:=z; y.^next:=x.^next; y.^privious:=x; x.^next:=y;
x.^next.^privious:=y end;
(7) добавление элемента z в двунаправленный список перед элементом g (g не
первый элемент)
begin
x:=first;
while x<>nil do begin x:=x.^next; if x.^f=g then begin
new(y); y.^previous:=x.^previous; x.^previous:=y; x.^previous.^next:=y; y.^next:=x
end end end;
(8) удаление k-го элемента из двунаправленного списка (1<k<len(x))
x:=first; n:=0;
while x<>nil do x:=x.^next; n:=n+1;
if k=n then begin z:=x.^next; y:=x.^previous;
y.^next:=z; z.^previous:=y end;
(9) меняет местами первый и второй элементы в двунаправленном списке
begin
x:=first;
y:=x.^next; y.^next:=x; x.^previous:=y; x.^next:=x.^next.^next;
x.^next.^previous:=x;
(10) поиск
элемента g в списке
function poisk (x: p; g: tip;): boolean;
var a: boolean;
begin a:=false;
while x<>nil do if x.^f=g then a:=true; x:=x.^next end;
poisk:=a end.
19. Напишите фрагменты программ, которые описывают и определяют некоторые
значения для:
(1) указателей на целые и вещественные числа;
(2) указателей на символьные и строковые переменные;
(3) указателя на массив целых чисел;
(4) указателя на массив строк из 10 символов;
(5) массив указателей на вещественные числа;
(6) массив
указателей на массивы целых чисел;
(7) массив записей, одно поле которых является числовым, а второеуказателем
на строковую переменную максимальной длины;
(8) запись, которая содержит некоторую информацию (по Вашему выбору) и поле
указатель на себе подобную запись.
20. Напишите процедуры:
(1) создания списка из массива;