stivă pascal

stivă Pascal

Oamenii, cere ca subiect Pascal juzat! Ce este o stivă, știu, dar iată cum să lucreze cu el? Tastați a crea o stivă, adăugați date, șterge datele. Aici sunt acest tip de întrebare Sunt interesat. Dacă aveți posibilitatea să-și ma-stacojiu primerchik.

> ciumă
Citiți despre asamblare instrucțiuni împinge și pop-

2 schior. Faptul de a problemei care trebuie să fie făcut pe Pascal curat. Fără Asma. Acest RGZ loc de muncă, un lector la Universitatea din ASME nu se taie.

TStack - Peek, Pop, Push
Structura de date de acces secvențial
Stiva - „pentru prima dată în - ultimul out“
Locul - "pentru prima dată în - primul ieșit" (FIFO - primul in - first out)
Decembrie - intrare pe de o parte, și de ieșire de la ambele

> ciumă
Ei bine, atunci mai ușor
1) Utilizarea TList sau urmașul său (acesta va fi mai frumos.)
2) sau o stivă imagineze folosind o matrice.

2 schior. Cum e asta? Cu ajutorul unei matrice?

> ciumă
Standard.
Și asta te sperie.
Citiți despre aceasta în Alfred Aho și Dzheffi Ulmana
„Structuri de algoritmi și informații“ (dacă nu mă înșel.)

Ei bine, asta e vorba.

const
ASize = 64;
tip
TStack = înregistrare ambalate
Date. array [1..ASize] de Integer;
Top. integer;
se încheie; // TStack
var
Stivă. TStack;

// Șterge stivă
Procedura EmptyStack (var AStack TStack.);
începe
AStack.Top: = ASize;
se încheie;

// scrie valoarea în stivă
Procedura Push (var AStack TStack ;. const AValue Integer.);
începe
dacă AStack.Top = 1 atunci ShowMessage ( "stivă este plin!")
else begin
AStack.Data [AStack.Top]: = AValue;
AStack.Top: = AStack.Top - 1;
se încheie;
se încheie;

// elimina valoarea din stiva-A
// rezultat AValue în AValue
Procedura Pop (var AStack TStack ;. var AValue Integer.);
începe
în cazul în care AStack.Top = ASize apoi ShowMessage ( "stivă este gol!")
else begin
AValue: = AStack.Data [AStack.Top];
AStack.Top: = AStack.Top + 1;
se încheie;
se încheie;

Procedura Push (var AStack TStack ;. const AValue Integer.);
începe
dacă AStack.Top = 0, atunci ShowMessage ( "stivă este plin!")
else begin
AStack.Data [AStack.Top]: = AValue;
AStack.Top: = AStack.Top - 1;
se încheie;
se încheie;

Procedura Pop (var AStack TStack ;. var AValue Integer.);
începe
dacă AStack.Top> ASize apoi ShowMessage ( "stivă este gol!")
else begin
AValue: = AStack.Data [AStack.Top];
AStack.Top: = AStack.Top + 1;
se încheie;
se încheie;

2 Schior Wow! Mulțumesc. Chiar acum voi săpa!

plagă (18.12.02 18:18)
Nu ai nici timp, iar celălalt este atunci când se poate indoi si degetele?

2 Anatoly Podgoretsky, interesant, iar acest lucru sa întâmplat atunci când lucrarea este „ars“ cu tine? Sau nu?

Uneori, dar este întotdeauna problema mea.