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

Дан указатель P1 на вершину стека (если стек пуст, то P1 = nil). Извлечь из стека все элементы и вывести их значения

22.12.2018, 05:55. Показов 3954. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Динамические структуры данных

Все числа, используемые в заданиях на динамические структуры данных, являются целыми. Все указатели имеют тип PNode и указывают на записи типа TNode. В заданиях на динамические структуры данных используются поля Data, Next и Prev записей типа TNode. Поэтому при выполнении этих заданий можно считать, что типы PNode и TNode описаны следующим образом:

Pascal
1
2
3
4
5
6
7
8
9
type
 
    PNode = ^TNode;
 
    TNode = record
 
        Data: integer;
 
        Next: PNode;         Prev: PNode;     end;
Во вводных заданиях, а также в заданиях на стек и очередь при работе с записями типа TNode используются только поля Data и Next; в заданиях на списки используются все поля записи TNode.

Так как переменные типа «указатель» предназначены для хранения адресов, в формулировках заданий слова «указатель» (на элемент данных) и «адрес» (элемента данных) используются как синонимы.

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

Динамические структуры данных: стек
В заданиях данной подгруппы структура «стек» (stack) моделируется цепочкой связанных узлов-записей типа TNode. Поле Next последнего элемента цепочки равно nil. Вершиной стека (top) считается первый элемент цепочки. Для доступа к стеку используется указатель на его вершину (для пустого стека данный указатель полагается равным nil). Значением элемента стека считается значение его поля Data.


Вариант 7. Дан указатель P1 на вершину стека (если стек пуст, то P1 = nil). Извлечь из стека все элементы и вывести их значения. Вывести также количество извлеченных элементов N (для пустого стека вывести 0). После извлечения элементов из стека освобождать память, которую они занимали.



Конкретно здесь, нужно все автоматизировать, вот прям так, чтобы только запуск был, чтобы числа рандомно генерировались и потом производилась всё как в задании, а в конце выводилось это всё, (прикрепил, что получилось у меня (Roflyanochka6).

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
program Roflyanochka6;
type
  PNode=^TNode;
  TNode=record
    Data: Integer;
    Next: PNode;
    //Prev: PNode;
  end;
 
procedure CreateStack(var P1:PNode);
var
 p:PNode;
 i,N:integer;
 
begin
 Write('N:');
 Readln(N);
 p1:=nil;
 for i:=1 to N do
  begin
   new(p);
   Write('эл-т: ');
   Readln(P^.Data);
   p^.Next := P1;
   P1:=p;
  end;
end;
 
function pop(var P1:PNode):integer;
var
 head: PNode;
begin
 Result:=p1^.Data;
 head:=P1^.Next;
 Dispose(P1);
 P1:=head;
end;
 
var
 P1:PNode;
 i,N:integer;
begin
 CreateStack(P1);
 N:=0;
 while (p1<>nil) do
  begin
   inc(N);
   Writeln(pop(P1));
  end;
 Writeln('кол-во эл-ов:',N);
 Writeln('Стек очищен');
 writeln('Пуст ли стек: {p1=nil}');
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2018, 05:55
Ответы с готовыми решениями:

Извлечь из стека все элементы и вывести их значения, имея только указатель на его вершину
Дано указатель P1 на вершину стека (если стек пуст, то P1 = NULL). Извлечь из стека все элементы и...

Стек: Переместить все элементы из первого стека во второй и вывести адрес новой вершины стека
Даны указатели P1 и P2 на вершины двух непустых стеков. Переместить все элементы из первого стека...

Дан указатель P1 на вершину стека
Дан указатель P1 на вершину стека (если стек пуст, то P1 = nil). Также дано число N (&gt; 0) и набор...

Задан указатель P1 на вершину непустого стека. Создать два новых стека
Добрый вечер, у меня возникла проблемка с такой программкой. Вывести в компонент Label. ...

7
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,785
22.12.2018, 16:12 2
В чём вопрос?
0
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 15
22.12.2018, 21:24  [ТС] 3
Sun Serega, нужно все автоматизировать, вот прям так, чтобы только запуск был, чтобы числа рандомно генерировались и потом производилась всё как в задании, а в конце выводилось это всё
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,785
22.12.2018, 22:10 4
Замените Readln на генерацию рандомного числа.
0
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 15
23.12.2018, 01:46  [ТС] 5
Sun Serega, я не знаю как это сделать, слишком слаб для Паскаля (((
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,785
23.12.2018, 02:01 6
Сколько людей из вашей группы понимают вообще хоть что то в паскале?))) Уже который раз это задание. И каждый раз ТС ничего не понимает в паскале.
Воспользуйтесь поиском, что ли... Правда, я не уверен что предыдущие именно такие как вам надо. Но вы всё равно проверьте.
0
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 15
23.12.2018, 03:01  [ТС] 7
Sun Serega, я искал, находит только для С+, либо для турбопаскаля
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,785
23.12.2018, 03:20 8
1. Ищите в разделе PABC.Net
2. Программа с турбо паскаля должна запускаться на PABC.Net, иногда с небольшими правками. Но совместимость ооочень хорошая.
0
23.12.2018, 03:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2018, 03:20
Помогаю со студенческими работами здесь

Дано число D и указатель P1 на вершину непустого стека. Добавить элемент со значением D в стек
Дано число D и указатель P1 на вершину непустого стека. Добавить элемент со значением D в стек и...

Как создать указатель на вершину стека ? Объединить числа из двух упорядоченных стеков в третий упорядоченный стек
Всем привет . Как в С# создать указатель который указывает на вершину стека ? прошу максимально...

создать стек в памяти из этих чисел таким образом, чтобы на вершине стека было самое большое число. Удалить из стека все отрицательные элементы.
Помогите решить. В файл записывается последовательность целых чисел. Прочитать последовательность...

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...)
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:( Может кто то...

Извлечь из стека первый (верхний) элемент и вывести его значение D, а также адрес P2 новой вершины стека
Дано указатель P1 на вершину непустого стека. Извлечь из стека первый (верхний) элемент и вывести...

Извлеч из стека все элементы и вывести их значения.
Помогите с задачей. Дан указатель P1 на вершину стека (если стек пуст, то P1=NIL). Извлеч из...


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

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

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