Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2011, 21:17   #1
freestylerUA
Новичок
Джуниор
 
Регистрация: 08.03.2011
Сообщений: 2
По умолчанию стек

подскажите пожалуйста правильно ли я решил,если нет подскажите как,ибо начитался много - но так и не дошло.
У меня есть непустой стек с указателем на его вершину р1, нужно записать число в стек и вывести адрес новой вершины р2
я вот что то пытался...

Код:
uses crt;
type
PNode=^TNode;
TNode=record
  Data:integer;
  Next:PNode;
  end;
var d1,d:integer;p1,p2:PNode;
procedure CS(var p1:PNode; var d1:integer);
  begin
  New(p1);
  p1^.next:=nil;
  p1^.data:=d1;
  end;
procedure Add(var p1,p2:pnode; var d:integer);
  begin
  New(p2);
  p2^.data:=d;
  p2^.next:=p1;
  p1:=p2;
  end;
procedure del(var p1:pnode);
var p2:pnode;
  begin
  if p1 <> nil then
    begin
    p2:=p1;
    p1:=p1^.next;
    Dispose(p2);
    end;
  end;
begin
clrscr;
 Writeln('** VVEDUTE CHUSLO **');
 readln(d1);
 writeln('VVEDUTE CHUSLO D');
 readln(d);
 cs(p1,d1);
 add(p1,p2,d);
 del(p1);
 repeat until
 keypressed;
end.
freestylerUA вне форума Ответить с цитированием
Старый 09.03.2011, 12:40   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

ну код похож на рабочий, а в чём вопрос? После добавления, выводите p2 на экран, и всё.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 09.03.2011, 13:28   #3
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
ну код похож на рабочий, а в чём вопрос? После добавления, выводите p2 на экран, и всё.
все верно
вот только p2 удаляется
Код:
 p1:=p1^.next;
    Dispose(p2)
, а p1 указывает на nil...

p.s , интересно а что это такое? создаем значит новый элемент стека и тут же нго удаляем. процедура
Код:
del(var p1:pnode)
не нужна, достаточно просто переадресовать p1 на p2 или оставить p2 вершиной..., и выводим p1/p2.

Последний раз редактировалось Летучий_СкилетиК; 09.03.2011 в 13:56.
Летучий_СкилетиК вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек на С oleg081 Помощь студентам 3 23.02.2011 16:18
C++ Стек phantom4eg Помощь студентам 0 31.05.2010 01:16
Стек. pa6kevi4 Помощь студентам 5 12.03.2010 15:38
стек. Nelson1992 Фриланс 2 16.02.2010 00:28