Курсовая работа: Динамические структуры данных. Решение задач. Стек. Очередь. Дек
begin
y:=random-random;
push;
end;
list; Writeln;
for i:=1 to n do
begin
push);
pop;
end;
writeln;
readln;
for i:=1 to n do
begin
if) mod f=0 then
push);
pop;
end;
writeln;
list;
3. Дан стек, содержащий целые числа. Используя второй стек, записать в дно стека номер один сумму всех элементов.
randomize;
init;
init;
for i:=1 to n-1 do
begin
y:=random-random;
push;
end;
list; Writeln;
f:=0;
for i:=1 to n-1 do
begin
f:=f+stacktop;
push);
pop;
end;
push;
for i:=1 to n-1 do
begin
push);
pop;
end;
list;
writeln;
4. Удалить из стека, который составлен из целых чисел заданных случайным образом, каждый второй элемент. На дне находится первый элемент.
randomize;
init;
init;
for i:=1 to n do begin
y:=random;
push; end;
list; writeln;
while not emptydo begin
pop;
push);
end;
while not emptydo begin
push); end;
list; writeln;
5. Дан стек из целых чисел, заполненный случайным образом. При помощи второго стека удалить последний отрицательный элемент.
randomize;
init;
init;
for i:=1 to n do begin
y:=random-random;
push; end;
list;
y:=0;
while not empty do begin
if <0) and then begin pop; y:=1; end;
push);
end;
list;
while not empty do
push);
list;
6. Дан стек заполненный элементами типа typeelem. Удалить из стека предпоследний элемент.
randomize;
init;
for i:=1 to n do
begin
y:=random-random;
push;
end;
list; Writeln;
y:=pop;
pop;
push;
list; Writeln;
7. Дан стек заполненный элементами типа typeelem. Удалить из стека первый элемент и поместить его в вершину стека номер один.
randomize;
init;
init;
for i:=1 to n do
begin
y:=random-random;
push;
end;
list; Writeln;
repeat
y:=pop;
push;
until empty;
f:=pop;
repeat
y:=pop;
push;
until empty;
push;
list; Writeln;
8. Дан стек из целых чисел, заполненный случайным образом. Поместить вершину стека в дно, используя вспомогательный стек.
randomize;
init;
init;
for i:=1 to n do
begin
y:=random-random;
push;
end;
list; Writeln;
f:=pop;
repeat
y:=pop;
push;
until empty;
push;
repeat
y:=pop;
push;
until empty;
list; Writeln;
9. Дан стек заполненный случайным образом из целых чисел. Поменять в данном стеке содержимое вершины и дна.
randomize;
init;
init;
for i:=1 to n do
begin
y:=random-random;
push;
end;
list; Writeln;
f1:=pop;
repeat
y:=pop;
push;
until empty;
f2:=pop;
push;
repeat
y:=pop;
push;
until empty;
push;
list; Writeln;
10. Дан стек из целых чисел, заполненный случайными образом. Сравнить сумму положительных элементов с модулем суммы отрицательных элементов.
randomize;
init;
init;
w:=1; w1:=1;
for i:=1 to n do begin
y:=random-random;
push; end;
list;
f:=true;
while not empty do begin
y:=pop;
if y>0 then w:=w*y
else w1:=w1*abs;
push;
end;
if w<w1 then writeln
else writeln;
while not empty do begin
y:=pop;
push; end;
list;
11. Дан стек из целых чисел. Поместить в дно стека сумму модулей всех элементов.
randomize;
init;
init;
for i:=1 to n-1 do
begin
y:=random-random;
push;
end;
list; Writeln;
f:=0;
for i:=1 to n-1 do
begin
f:=f+abs);
push);
pop;
end;
push;
for i:=1 to n-1 do
begin
push);
pop;
end;
list;
writeln;
12. Дан стек из целых чисел. Поместить в дно стека произведение всех элементов.
randomize;
init;
init;
for i:=1 to n-1 do
begin
y:=random-random;
push;
end;
list; Writeln;
f:=1;
for i:=1 to n-1 do
begin
f:=f*abs);
push);
pop;
end;
push;
for i:=1 to n-1 do
begin
push);
pop;
end;
list;
writeln;
13. Дан стек, заполненный случайными числами. Вычесть из всех элементов стека число вводимое с клавиатуры. Используйте второй стек для хранения данных.
randomize;
init;
init;
for i:=1 to n do
begin
y:=random-random;
push;
end;
list; Writeln;
Writeln;
readln;
for i:=1 to n do
begin
y:=stacktop-f;
push;
pop;
end;
push;
for i:=1 to n do
begin
push);
pop;
end;
list;
14. Дан стек из целых чисел. Прибавить ко всем элементам число вводимое с клавиатуры.
15. В стек записаны элементы типа typeelem. Записать содержимое стека в обратном порядке в тот же стек. Используйте два вспомогательных стека.
randomize;
init;
init;
init;
for i:=1 to n do
begin
y:=random-random;
push;
end;
list; Writeln;
for i:=1 to n do
begin
push);
pop;
end;
for i:=1 to n do
begin
push);
pop;
end;
for i:=1 to n do
begin
push);
pop;
end;
list;
16. В стек записаны элементы типа typeelem. Поменять в стеке первый элемент со вторым, третий с четвертым, и так далее. Если стек содержит нечетное количество элементов, то оставить его на месте.
init;
init;
init;
for i:=1 to n do
push;
list; Writeln;
while not emptydo begin
push);
push);
end;
while not or empty) do begin
push);
push);
end;
list;
17. Стек заполнен элементами типа typeelem. Записать в этот же стек сначала элементы с четными номерами, затем – с нечетными.
init;
init;
init;
for i:=1 to n do
push;
list; Writeln;
while not emptydo begin
push);
push);
end;
while not or empty) do
push);
while not or empty) do
push);
list;
18. Стек заполнен целыми числами случайным образом. Записать в стек сначала четные элементы, затем – нечетные. Для решения задачи используйте два дополнительных стека.
randomize;
init;
init;
init;
for i:=1 to n do
begin
y:=random;
push;
end;
list; Writeln;
while not emptydo
if stacktop mod 2=0 then push)
else push);
while not emptydo
push);
while not emptydo
push);
list;
19. Дан стек из целых чисел, заполненный случайным образом. Используя только стеки, отсортировать элементы стека по возрастанию. На дне стека минимальный элемент, в вершине – максимальный. Используйте нужное количество стеков.