Stack паскал
Stack Паскал
Хората, бързи като предмет Паскал juzat на! Какво е стека, знам, но ето как да се работи с него? Въведете създадете група, добавете данни, изтриване на данни. Ето този тип въпрос аз съм интересуват. Ако можете ma-и-червено primerchik.
> чума
Прочетете за монтаж инструкции, бута и поп
2 скиор. Фактът на въпроса, че трябва да се направи на чиста Паскал. Без Асма. Тази работа RGZ, преподавател в университета в ИАНМСП не посегнат.
TStack - Peek, поп, Push
структура данни последователно достъп
Стек - "за първи път през - изкара"
място - "за първи път през - първа изходяща" (FIFO - за първи път през - първа изходяща)
Декември - вход, от една страна, и на изхода от двете
> чума
Ами тогава по-лесно
1) Използване TList или негов потомък (тя ще бъде по-красив.)
2) или купчина си представим използване масив.
2 скиор. Как е? С помощта на масив?
> чума
Standard.
И, което ви плаши.
Прочетете за него в Alfred Ахо и Dzheffi Ulmana
"алгоритми и структури от данни" (ако не се лъжа.)
Е, това е около.
конст
ASize = 64;
тип
TStack = опаковани рекорд
Data. масив [1..ASize] на цяло число;
Най-високо. Цяло число;
приключи; // TStack
Var
Stack. TStack;
// Clear Stack
процедура EmptyStack (Var AStack TStack.);
започвам
AStack.Top: = ASize;
приключи;
// напишете стойността в стека
процедура Push (Var AStack TStack ;. конст AValue число.);
започвам
ако AStack.Top = 1 тогава ShowMessage ( "Stack е пълен!")
друг да започне
AStack.Data [AStack.Top]: = AValue;
AStack.Top: = AStack.Top - 1;
приключи;
приключи;
// отстраняване на стойността от стека-а
// AValue резултат в AValue
процедура поп (Var AStack TStack ;. Var AValue число.);
започвам
ако AStack.Top = ASize тогава ShowMessage ( "Stack е празен!")
друг да започне
AValue: = AStack.Data [AStack.Top];
AStack.Top: = AStack.Top + 1;
приключи;
приключи;
процедура Push (Var AStack TStack ;. конст AValue число.);
започвам
ако AStack.Top = 0 тогава ShowMessage ( "Stack е пълен!")
друг да започне
AStack.Data [AStack.Top]: = AValue;
AStack.Top: = AStack.Top - 1;
приключи;
приключи;
процедура поп (Var AStack TStack ;. Var AValue число.);
започвам
ако AStack.Top> ASize тогава ShowMessage ( "Stack е празен!")
друг да започне
AValue: = AStack.Data [AStack.Top];
AStack.Top: = AStack.Top + 1;
приключи;
приключи;
2 Скиор Уау! Благодаря. Точно сега аз ще копаем!
чума (18.12.02 18:18)
Вие нямате време, а другият е, когато може да ви и се огъват пръстите си?
2 Анатолий Podgoretsky, интересно, а това се случи, когато работата е "изгори" с теб? Или не?
Понякога, но тя винаги е мой проблем.