Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Program st;
Type Pstack = ^ stack; Stack = record Data: integer; Next: pstack; End; Var x, y, verh: pstack; a, b, i, n: integer; Begin verh: = nil; {стек пуст} writeln (‘n=’); Readln (n); for I: = 1 to n do Begin new (y); { создание нового элемента стека – у получает адрес свободной ячейки} writeln (‘a=’); readln (a); { ввод с клавиатуры числа} y^. data: = a; {информационная часть получает значение а, т.е. по этому адресу в поле data записывается а } y^. next: = verh; {адресная часть принимает значение указателя вершины стека} verh: = y; {указатель вершины принимает значение адреса нового элемента} End; writeln (‘элементы стека: ’); for i: = 1 to n do Begin b: = verh ^. data; { b принимает значение информационного поля верхнего элемента} writeln (‘b =’, b); x: = verh; { указателю х присвоено значение указателя вершины стека} verh: = verh ^. next; {указатель вершины принимает значение адреса следующего элемента стека} dispose (x); {уничтожение указателя х, после чего ячейки, содержавшие значение х ^ становятся свободными} End; Readln; End. При выполнении программы указатель verh вначале получает значение nil – стек пуст. Затем в цикле вводятся значения а: 1, 2, 3, 4. Эти значения заносятся в поле data элементов стека. Поле next при этом получает значение, на которое указывает verh.
3)
При занесении новых элементов в стек указатель verh меняет свое значение и указывает каждый раз на только что введенный элемент. Во второй части программы удаления элементов из стека указатель verh меняет свое значение в обратном порядке.
|