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

Работа со Стеком

13.12.2016, 14:22. Показов 763. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать список из целых чисел. Заменить каждую последовательность повторяющихся элементов на один элемент. (Выполнить с помощью стека)

Модуль с процедурами и функциями для работы:
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
unit Stacksh;
 
interface 
 
type
  tstack = ^stac;
  stac = record
    inf: shortstring;
    next: tstack;
  end;
 
procedure push(var head: tstack; item: shortstring);
function pop(var head: tstack): shortstring;
function InitStack: tstack;
function Peek(head: tstack): shortstring;
function EmptyStack(head: tstack): boolean;
 
implementation
 
function InitStack: tstack;
begin
  Initstack := nil;
end;
 
procedure Push(var head: tstack; item: shortstring);
var
  r: tstack;
begin
  new(r);
  r^.inf := item;
  r^.next := head;
  head := r;
end;
 
function Pop: shortstring;
var
  i: shortstring;
  r: tstack;
begin
  r := head;
  i := r^.inf;
  head := r^.next;
  dispose(r);
  pop := i;
end;
 
function Peek: shortstring;
begin
  peek := head^.inf;
end;
 
function EmptyStack(head: tstack): boolean;
begin
  if head = nil then
    EmptyStack := true else
    EmptyStack := false;
end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2016, 14:22
Ответы с готовыми решениями:

Работа со стеком
Заполнить стек значениями произвольно выбранного типа. Вставить символ '*' в середину стека, если...

Работа со стеком
Доброго времени суток. Мне нужно создать стек и вывести его на экран. Или что-то с вводом или...

Работа со стеком
Помогите разобраться, почему при выполнении выводится пустая строка? program lab4; const n = 2;...

работа со стеком
uses crt; type str=string; uk_stack=^stack; stack=record inf:str; nevt:uk_stack; end; var...

1
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
14.12.2016, 06:46 2
Во-первых, приведённый модуль не для целых чисел, а для коротких строк!
А во-вторых, в PABC.NET уже есть стандартные объекты список и стек…
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
begin
  var n := ReadLnInteger('Количество элемнтов списка: n =');
  var L := New List<integer>;
  Write('Введите через пробел элементы списка: ');
  var v : Integer; for var i := 1 to n do begin Read(v); L.Add(v); end;
  WriteLn('Список: ', L);
 
  var S := New Stack<integer>;
  foreach v in L do
    if (S.Count = 0) or (S.Peek <> v) then
      S.Push(v);
  WriteLn('Стек: ', S);
 
  L := New List<integer>;
  while S.Count > 0 do
    L.Add(S.Pop);
  WriteLn('Список: ', L);
end.
1
14.12.2016, 06:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2016, 06:46
Помогаю со студенческими работами здесь

работа со стеком
Помогите пожалуста!!!!!Вот такое задание: 1.На языке программирования Pascal реализовать процедуры...

Паскаль, работа со стеком
Доброго времени суток, уважаемые формучане! Мне задали следующее задание на Паскале, но дальше...

Работа со стеком на последовательном распределении памяти
1. Создание пустого стека 2. Добавление элемента на вершину стека 3. Удаление элемента с...

Работа со стеком - не все нечетные элементы удаляются
Приветствую всех форумчан. Хочу научиться работать со стеком. Вот решил написать прогу, которая...

Pascal работа с файлами и стеком. Требуется грамотный совет
Собственно задача с олимпиады Определим правильные скобочные выражения так: Пустое выражение -...

Работа со стеком - С(Си)
Помогите, пожалуйста, разобраться. Он не компилирует. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...


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

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