Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 7
1

Найти минимальный элемент в стеке и вставить после него 0

19.06.2016, 18:09. Показов 2990. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо найти минимальный элемент в стеке и вставить после него 0.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2016, 18:09
Ответы с готовыми решениями:

Найти минимальный элемент стека и вставить после него 0
Найти минимальный элемент стека и вставить после него 0

Найти в стеке минимальный элемент и вставить после него 0
Найти минимальный элемент и вставить после него 0.

Найти минимальный элемент стека и вставить после него 0
Найти минимальный элемент стека и вставить после него 0: вот программа но работает не корректно:...

Найти минимальный элемент стека и вставить после него 0
 ребят помогите сделать задачу, не понимаю как делать. Ввести символы, формируя из них стек.Найти...

4
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
20.06.2016, 05:56 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Стек — это способ хранения информации по принципу «последним пришёл — первым вышел».
Над стеком определены всего две операции:
push — пихнуть (отправить в стек)
pop — выпихнуть (взять из стека и удалить)
Можно, конечно ещё определить одну операцию:
peek — взять элемент с вершины, но не удалять
Можно ещё добавить свойство:
empty — пустой ли стек или count — число элементов стека.
Хоть первое проще, почему-то в реализации PABC.NET используется второе…
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Подводя итог, могу сказать, что в классическом понимании стека, данное задание должно быть реализовано таким вот образом:
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
begin
  Randomize;
  var s := New Stack<integer>;
  var count := ReadLnInteger('Число случайных элементов стека:');
  WriteLn('Заносим значения в стек:');
  for var n := 1 to count do
    begin
      var v := Random(1, 9);
      s.Push(v);
      Print(v);
    end;
  WriteLn(NewLine, 'Создан стек:', NewLine, s);
  
  var minV := s.Peek;
  var t := New Stack<integer>;
  while s.Count > 0 do
    begin
      var v := s.Pop;
      t.Push(v);
      if minV > v then minV := v;
    end;
  WriteLn('Минимальный элемент = ', minV);
  
  while t.Count > 0 do
    begin
      var v := t.Pop;
      s.Push(v);
      if v = minV then
        begin
          s.Push(0);
          minV := Integer.MinValue;
        end;
    end;
  WriteLn('После последнего минимального вставлен 0:', NewLine, s);
end.
P.S. Прошу учесть, что при выводе содержимого стека, „голова“ находится слева, а „хвост“ – справа. Поэтому на самом деле 0 на экран выводится левее минимального значения…
Тот, что „последним пришёл“ — попадает в самую левую позицию „голову“ стека, следовательно становится левее.
1
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 7
20.06.2016, 06:46  [ТС] 3
Спасибо огромное!)
0
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 22
21.03.2018, 14:57 4
а если то же самое Pascal ABC? не хочет воспринимать компилятор операторы нетовские
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
22.03.2018, 06:17 5
Цитата Сообщение от M0R Посмотреть сообщение
а если то же самое Pascal ABC?
Хотите — делайте! Я не буду возражать ;–)
0
22.03.2018, 06:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2018, 06:17
Помогаю со студенческими работами здесь

Найти минимальный элемент стека, вставить после него 0
найте минимальный элемент стека , е поставить после него 0 Добавлено через 50 минут уже нашел

Ввести символы, формируя из них стек. Найти минимальный элемент и вставить после него 0
Ввести символы, формируя из них стек.Найти минимальный элемент и вставить после него 0. Как сделать?

(с#) Найти минимальный элемент в стеке и вставить перед ним 0.
Необходимо найти минимальный элемент в стеке и вставить ноль перед ним. Вот как получилось...

Найти минимальный элемент массива и вставить вместо него 0
одномерный массив. найти минимальный элемент и вставить вместо него 0

Найти максимальный элемент и вставить после него 0
Найти максимальный элемент и вставить после него 0

Найти минимальный элемент в массиве. Вставить после минимального элемента первый элемент этого массива.
Дан массив целых чисел. Найти минимальный элемент в массиве. Вставить после минимального элемента...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru