0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 6
1

Заполнить очередь и стек и поменять их содержимое местами через дополнительный стек.

25.03.2012, 13:00. Показов 2436. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо разработать программу, которая должна :
Заполнить очередь и стек и поменять их содержимое местами через дополнительный стек. Заранее,большое спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 13:00
Ответы с готовыми решениями:

Стек. Создать случайно генерированный стек и поменять местами первый элемент с i
Как создать случайно генерированный стек (тип элементов CHAR) и поменять местами первый элемент с i...

создать стек,заполнив числами 1,2,3...n.Посмотреть его содержимое,удалить стек
Всем привет!помогите,пожалуйста!!! создать стек,заполнив числами 1,2,3...n.Посмотреть его...

Создать стек из случайных целых чисел и поменять местами его крайние элементы
создать стек из случайных целых чисел и поменять местами его крайние элементы. Добавлено через 1...

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

5
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.03.2012, 14:51 2
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
uses crt;
type plist=^tlist;
tlist=record
    zn:integer;
    next:pList;
end;
 
procedure PushS(var first:plist;a:integer);
var p:plist;
begin
  new(p);
  p^.zn:=a;
  p^.next:=nil;
  if (first=nil) then
   first:=p
  else
   begin
    p^.next:=first;
    first:=p;
   end;
end;
 
procedure BufPush(var first:plist; a:integer);
var p:plist;
begin
  new(p);
  p^.zn:=a;
  p^.next:=nil;
  if (first=nil) then
   first:=p
  else
   begin
    p^.next:=first;
    first:=p;
   end;
end;
 
function BufPop(var first:pList;var a:integer):boolean;
var
 p:pList;
begin
  if (first=nil) then
  begin
    writeln(' ');
    Bufpop:=false;
  end
  else
   begin
    p:=first;
    first:=first^.next;
    a:=p^.zn;
    dispose(p);
    Bufpop:=true;
   end;
end;
 
function PopS(var first:pList;var a:integer):boolean;
var
 p:pList;
begin
  if (first=nil) then
  begin
    writeln(' ');
    popS:=false;
  end
  else
   begin
    p:=first;
    first:=first^.next;
    a:=p^.zn;
    dispose(p);
    popS:=true;
   end;
end;
 
procedure PushQ(var first:plist;a:integer);
var p:plist;
begin
  new(p);
  p^.zn:=a;
  p^.next:=nil;
  if (first=nil) then
     first:=p
  else
  begin
    p^.next:=first;
    first:=p;
  end;
end;
 
function PopQ(var first:pList;var a:integer):boolean;
var
 p:pList;
begin
  if (first=nil) then
  begin
    writeln(' ');
    popQ:=false;
  end
  else
   begin
    p:=first;
    first:=first^.next;
    a:=p^.zn;
    dispose(p);
    popQ:=true;
   end;
end;
 
var  firstS,firstQ,lastQ,BufFirst:plist;
     a,a1,i:integer;
begin
  clrscr;
  firstS:=nil;
  firstQ:=nil;
  BufFirst:=nil;
  for i:=1 to  10 do
   begin
    pushS(firstS, i);
    pushQ(firstQ, i*i);
   end;
  writeln('Стек до:');
  while (popS(firstS,a)=true) do
   begin
    write(a,' ');
    Bufpush(BufFirst, a);
   end;
  writeln('Очередь до:');
  while (popQ(firstQ,a)=true) do
   begin
    write(a,' ');
    pushS(firstS,a);
   end;
  while (Bufpop(BufFirst,a)=true) do
   begin
    pushQ(firstQ,a);
   end;
  writeln('Стек после:');
  while (popS(firstS,a)=true) do
    write(a,' ');
  writeln('Очередь после:');
  while (popQ(firstQ,a)=true) do
    write(a,' ');
end.
1
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 6
25.03.2012, 15:05  [ТС] 3
Огромнейшее спасибо, только стек после он записывает задом наперед.
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.03.2012, 15:11 4
howmany, для этого нужно модифицировать процедуру. Но, главное, что меняет ведь местами
1
0 / 0 / 0
Регистрация: 19.12.2010
Сообщений: 6
25.03.2012, 15:30  [ТС] 5
BumerangSP, подскажи пожалуйсто какую именно процедуру?)
0
4311 / 1422 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
25.03.2012, 15:59 6
howmany, процедуру добавления push. Их там несколько. Просто предусмотреть вывод нужно. Я лично не особо разбирался с выводом, когда сталкивался с подобного рода программами. Подробную информацию можно найти тут:
Динамические структуры данных (списки, очереди, стеки, деревья)
А если лень, то можно попытаться по новой заполнить стек и вывести (очередь заполняется также, просто у нее на 1 вывод элементов больше, чем у стека, оттого и очередность сохранилась).
1
25.03.2012, 15:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2012, 15:59
Помогаю со студенческими работами здесь

стек и очередь
помогите пожалуйста используя стек и очередь решить задачу: в текстовом файле записан...

Стек, очередь.
1)Дан файл, создать стэк вывести адрес 1-ого и адрес посл. элемента стэка. Положительные элемен....

списки, очередь и стек.
помагите решить задачу!!!!! Решить одну и ту же задачу, организуя список, очередь и стек. В...

Скопировать очередь в стек.
Прошу помощи в решении задания по программированию. -=Создать очередь в виде кольцевого массива....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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