IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Динамические структуры данных, Нужно переделать в стек...
CormiX
сообщение 12.05.2010 18:39
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 42
Пол: Мужской

Репутация: -  0  +


Помогите пожалуйста переделать список в стек.
program lab9;
uses crt;
type
Link = ^List;
List = record
next: Link;
data: string;
NumRand: integer;
end;
var
i:integer;
TopElement: Link;
tocase:byte;
doexit:boolean;



function DataAsk : string;
begin
Write('Vedit dani:');
Readln(DataAsk);
end;

procedure DataCreate(pdata:string);
begin
TopElement:=New(Link);
TopElement^.data := pdata;
TopElement^.NumRand := Random(10000);
TopElement^.next := nil;
end;

procedure DataAdd(pdata:string);
var temp: Link;
begin
temp := new(Link);
temp^.data := pdata;
temp^.NumRand := Random(10000);
temp^.next := TopElement;
TopElement := temp;
end;

procedure DataDel;
var temp: Link;
begin
temp := TopElement;
if temp^.next=nil then
begin
writeln('Stek pustij.');
TopElement := nil
end
else
begin
temp := temp^.next;
TopElement := temp;
end;
end;


procedure Show;
var temp : Link;
begin
temp := TopElement;
while temp <> nil do
begin
writeln('Dani: ', temp^.data, ' - ', temp^.NumRand);
temp:=temp^.next;
end;
end;

procedure ShowNData;
var temp : Link;
n : word;
begin
write('Veditj №: ');
readln(n);
temp := TopElement;
for i:=1 to n do
begin
if i=n then writeln('Dani: ', temp^.data, ' - ', temp^.NumRand);
if temp=nil then
begin
writeln('Ne znajdeno poziciji №: ', n);
break;
end;
temp:=temp^.next;
end;
end;

procedure Search;
var temp : Link;
stext: string;
isfind : boolean;
begin
write('Veditj wukanij tekst: ');
readln(stext);
temp := TopElement;
while temp <> nil do
begin
if temp^.data=stext then
begin
writeln('Znajdeno: ', temp^.data, ' - ', temp^.NumRand);
isfind := true;
end;
temp:=temp^.next;
end;
if isfind <> true then writeln('Zapys (', stext ,') ne znajdeno.');
end;

begin
repeat
clrscr;
writeln('Oberitj diu');
writeln;
writeln('1.Novij zapys.');
writeln('2.Dodaty zapys.');
writeln('3.Vydalyty.');
writeln('4.Vyvesty zapys novyj.');
writeln('5.Vyvesty vsi dani.');
writeln('6.Powuk.');
writeln;
writeln('0.Vyjty.');
writeln;
write('Vykonaty diu nomer: ');
readln(tocase);
case tocase of
1:DataCreate(DataAsk);
2:DataAdd(DataAsk);
3:DataDel;
4:ShowNData;
5:Show;
6:Search;
0:doexit:=true
else writeln('Pomylka!')
end;
writeln('Diu ', tocase,' vykonano. Enter - prodov*yty');
readln;
until doexit;


end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 22:34
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"