Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 16.10.2017
Сообщений: 23

Из элементов двух стеков с одинаково упорядоченными элементами собрать новый стек

31.10.2017, 16:07. Показов 2803. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Из элементов двух стеков с одинаково упорядоченными элементами собрать новый стек с упорядоченными элементами, изменив связи между элементами стеков (не выделяя новую память).

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Program STACK;
const
max_st=50;
const
max_st=50;
var
st,st2: array[1..max_st] of integer;
n:integer;
function empty:boolean; {Проверка стека на наличие элементов в нем}
begin
empty:=n=0
end;
procedure push(a:char); {Поместить элемент в стек}
begin
inc(n);
st[n]:=a;
end;
procedure pop(var a:char); {Извлечь элемент из стека}
begin
a:=st[n];
dec(n);
end;
function full:boolean; {Проверка на переполнение}
begin
Full:=n=max_st
end;
procedure stacktop(var a:char); {Узнать верхний элемент}
begin
a:=st[n];
end;
begin {Основная программа, нужно написать но не получается }
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2017, 16:07
Ответы с готовыми решениями:

Из нечетных элементов двух стеков с упорядоченными элементами создать новый стек с упорядоченными элементам
Из нечетных элементов двух стеков с упорядоченными элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки...

Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки
Здравствуйте. Помогите пожалуйста с программой Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с...

Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки
Из двух стеков равной длины с вещественными числами создать 1 стек с квадратами значений элементов исходных стеков, не удаляя исходные...

1
0 / 0 / 0
Регистрация: 16.10.2017
Сообщений: 23
14.11.2017, 17:57  [ТС]
у меня не получается отсортировать 3 стек


Условие:
Из элементов двух стеков с одинаково упорядоченными элементами собрать новый стек с упорядоченными элементами, изменив связи между элементами стеков (не выделяя новую память).

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//------------------------------------------------------------------------------
type
 
TPElem = ^TElem;
TElem = record
Data : Integer;
PNext : TPElem;
end;
 
procedure StackPush(var aPStack, aPElem : TPElem);
begin
aPElem^.PNext := aPStack;
aPStack := aPElem;
end;
 
function StackPop(var aPStack, aPElem : TPElem) : Boolean;
begin
Result := False;
if aPStack = nil then Exit;
aPElem := aPStack;
aPStack := aPElem^.PNext;
Result := True;
end;
 
procedure StackFree(var aPStack : TPElem);
var
PDel : TPElem;
begin
while aPStack <> nil do begin
PDel := aPStack;
aPStack := aPStack^.PNext;
Dispose(PDel);
end;
end;
 
const
M = 10;
var
PSt1, PSt2, PSt3, PElem : TPElem;
i, NumMax, NumMin : Integer;
S : String;
begin
repeat
 
PSt1 := nil;
PSt2 := nil;
PSt3 := nil;
 
for i := 1 to M do begin
New(PElem);
PElem^.Data := random(50)-25; 
StackPush(PSt1, PElem);
end;
 
Writeln('Содержимое первого стека:');
while StackPop(PSt1, PElem) do begin
StackPush(PSt3, PElem);
Write(PElem^.Data,',');
end;
Writeln;
while StackPop(PSt3, PElem) do StackPush(PSt1, PElem);
for i := 1 to M do begin
New(PElem);
PElem^.Data := random(50)-25; 
StackPush(PSt2, PElem);
end;
//Распечатка и переливание из второго стека в третий стек.
Writeln('Содержимое второго стека:');
while StackPop(PSt2, PElem) do begin
StackPush(PSt1, PElem);
Write(PElem^.Data,',');
end;
while StackPop(PSt1, PElem) do begin
if PElem^.Data <> 0 then StackPush(PSt3, PElem); 
end;
Writeln;
//Переливаем элементы из третьего стека обратно - во второй стек.
while StackPop(PSt3, PElem) do StackPush(PSt2, PElem);
//Третий стек.
//Переливаем из второго стека в третий только те элементы,
//которые не равны минимальному.
while StackPop(PSt2, PElem) do begin
if PElem^.Data <> 0 then StackPush(PSt3, PElem);
end;
//Распечатка элементов третьего стека.
//При этом, стек очищается.
Writeln('Содержимое третьего стека:');
i := 0;
while StackPop(PSt3, PElem) do begin
Inc(i);
if i <> 1 then Write(', ');
Write(PElem^.Data);
end;
Writeln;
while StackPop(PSt3, PElem) do begin
if PElem^.Data <> 0 then StackPush(PSt1, PElem);
end;
while StackPop(PSt3, PElem) do begin
if PElem^.Data <> 0 then StackPush(PSt2, PElem);
end;
//Удаление стеков из памяти.
StackFree(PSt1);
StackFree(PSt2);
StackFree(PSt3);
Readln(S);
until S <> '';
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2017, 17:57
Помогаю со студенческими работами здесь

Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не у
Здравствуйте. Помогите пожалуйста с программой Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с...

Из двух стеков, хранящих слова, создать новый стек элементов, у которых первая и последняя буква совпадают
Из двух стеков, хранящих слова, создать новый стек, у которых первая и последняя буква совпадают. Подходящие слова искать по-очереди в...

Из двух стеков с целыми числами создать новый стек из элементов первого стека, которых нет во втором
Здравствуйте. Помогите пожалуйста написать код теме: Реализация стека и основных алгоритмов его обработки. Задание звучит так: Из двух...

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

Переливание нечётных элементов из двух стеков в стек
У нас есть два стека, получаемых из файлов (Stack1.bat и Stack2.bat), нужно перелить нечётные элементы (не по их позиции, а именно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru