![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 08.05.2016
Сообщений: 1
|
![]()
Создать стек целочисленных значений, для реализации используя односвязные списки. Реализовать операции добавления (push) и удаления (pop) элемента из стека. Добавьте в стек числа - 5, 3, -4, 5 и распечатайте содержимое стека. Удалите один элемент из стека, добавьте число 10 в стек, и напечатайте содержимое стека еще раз. * Найдите сумму всех положительных элементов, принадлежащих стеку.
Program Stek; Const n=5; const zel : array [1 .. n] of integer = (11, 12, 13, 14, 15); Type pnode=^node; node=record d:integer; s:string; p : pnode; end; Var top : pnode; d,a,z,x,c,v,i,l,k:integer; s:string; option:integer; { -------------------------------- добавление в стек ----- } procedure push( d,z : integer) ; var p : pnode; begin new(p); p^.d := d; p^.p := top; top := p; end; { -------------------------------- выборка из стека ----- } function print(top : pnode; var d : integer) : pnode; var p : pnode; begin d := top^.d; print := top^.p; dispose(top); end; { -------------------------------- удаление из стека ----- } procedure pop; var p : pnode; begin if top<>nil then begin p := top^.p; dispose(top); top := p end; end; { ------------------------------- главная программа ----- } begin for i:=1 to 5 do begin while true do begin writeln ('1-вставка, 2-занесение, 3-удаление, 4-выход'); readln (option); case option of 1: begin //вставка writeln ('Введите числa для добавления'); readln(z); readln(x); readln(c); readln(v); END; 2: BEGIN { занесение в стек } for a := 1 to n do begin push(zel[a],d); while top <> nil do begin top := print(top, d); end; writeln(' ',d); end; begin push(z,d); top := print(top,z); writeln(' ',z); push(x,d); top := print(top,x); writeln(' ',x); push(c,d); top := print(top,c); writeln(' ',c); push(v,d); top := print(top,v); writeln(' ',v); end; end; 3: begin //удаление pop; end; 4: exit //выход end; end end; end. Не получается сделать удаление( Помогите пожалуйста! Последний раз редактировалось Mariya.sw; 08.05.2016 в 16:10. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатели, Динамическая память (Паскаль) | E1337 | Помощь студентам | 2 | 19.03.2016 12:55 |
Нужна помощь с решением задачи. Динамическая память на паскале | Loginnn | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 09.12.2015 20:53 |
Динамическая память в Паскаль (не работает программа и в чём ошибка не могу понять...) | milili | Помощь студентам | 1 | 10.01.2014 23:31 |
Pascal (turbo) Динамическая память (список, очередь, стек) | Trol_ko | Помощь студентам | 5 | 14.09.2011 13:27 |