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

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

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

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

Все числа, используемые в заданиях на динамические структуры данных, являются целыми. Все указатели имеют тип 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2018, 05:55
Ответы с готовыми решениями:

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

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

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

7
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
22.12.2018, 16:12
В чём вопрос?
0
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 15
22.12.2018, 21:24  [ТС]
Sun Serega, нужно все автоматизировать, вот прям так, чтобы только запуск был, чтобы числа рандомно генерировались и потом производилась всё как в задании, а в конце выводилось это всё
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
22.12.2018, 22:10
Замените Readln на генерацию рандомного числа.
0
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 15
23.12.2018, 01:46  [ТС]
Sun Serega, я не знаю как это сделать, слишком слаб для Паскаля (((
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
23.12.2018, 02:01
Сколько людей из вашей группы понимают вообще хоть что то в паскале?))) Уже который раз это задание. И каждый раз ТС ничего не понимает в паскале.
Воспользуйтесь поиском, что ли... Правда, я не уверен что предыдущие именно такие как вам надо. Но вы всё равно проверьте.
0
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 15
23.12.2018, 03:01  [ТС]
Sun Serega, я искал, находит только для С+, либо для турбопаскаля
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
23.12.2018, 03:20
1. Ищите в разделе PABC.Net
2. Программа с турбо паскаля должна запускаться на PABC.Net, иногда с небольшими правками. Но совместимость ооочень хорошая.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2018, 03:20
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru