Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠ³ΡΡΡ β ΡΠΎΡΠΊΡ, ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΈ Ρ.Π΄.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠ³ΡΡΡ (ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠ°Π΄ΠΈΡΡ ΠΈ Π΄Ρ.). Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²; ΡΠ°ΡΡΠΈΡΠΈΠΌ Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΊΡΡΡΠΈΡ ΡΠΈΠ³ΡΡ.
Π‘Ρ Π΅ΠΌΠ° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²Π²Π΅Π΄Π΅ΠΌ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠΌ ΡΠΎΡΠΌΡΠ»ΡΠ½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π‘ΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ β Π½Π°Π±ΠΎΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΡ , ΡΠ°ΠΊ ΠΈ ΡΠΎΡΡΠ°Π²Π½ΡΡ ), ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΎΠΌΠ°Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ΅ΡΠ΅Π· Π½Π°Π±ΠΎΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ²).
ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΈΡΡΠ½ΠΊΠΎΠ² (ΡΠ΅ΡΡΠ΅ΠΆΠ΅ΠΉ), ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π²ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ²: ΡΠΎΡΠ΅ΠΊ ΠΈ Π»ΠΈΠ½ΠΈΠΉ
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
ΠΠ»Π°ΡΡ TStack ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅Π°Π»Π·Π°ΡΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΡΡΠ΅ΠΊ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ - Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π²Π΅ΠΊΡΠΎΡΠ΅ ΠΏΡΠΌΡΡΠΈ ΠΎΡ ΠΌΠ»Π°Π΄ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊ ΡΡΠ°ΡΡΠΈΠΌ. ΠΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π·Π°Π½ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² Π²Π΅ΠΊΡΠΎΡΠ΅ ΠΏΡΠΌΡΡΠΈ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ .
ΠΠ΅ΡΠΎΠ΄Ρ:
#define MemSize 25 // ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΡΠ΅ΠΊΠ°
class TStack
{
protected:
int Mem[MemSize]; // ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Π‘Π
int Top; // ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π·Π°Π½ΡΡΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ
public:
TStack () { Top = -1; }
int IsEmpty (void) const { Top == -1; }
int IsFull (void) const { Top == MemSize-1;}
void Put ( const int Val ) { Mem[++Top] = val; }
TData Get (void) { return Mem[Top--]; }
};
ΠΡΠ΅ΡΠ΅Π΄Ρ (Π²ΡΡΠ°Π²ΠΊΠ° Π² ΠΊΠΎΠ½Π΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π°ΡΠ°Π»Π° - FIFO - first in, first out)
ΠΡΡΠ°Π²ΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ - Ρ ΠΊΠΎΠ½ΡΠ° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ => Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 2 ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
Π Ρ ΠΎΠ΄Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ = = n - 1. Π’ΠΎΠ³Π΄Π° Π²ΡΡΠ°Π²ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, Π° = 0.
Π‘Π΄Π²ΠΈΠ³ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Ρ.Π΅. ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ =0) β Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ =n-1 (Ρ.Π΅. ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΏΡΠ°Π²Π°).
Π¦ΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ - ΡΡΡΡΠΊΡΡΡΠ° Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠ°Ρ ΠΈΠ· Π²Π΅ΠΊΡΠΎΡΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΡΠΎΠΉ . Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ Π³ΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ MemSize-1
Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²Π΅ΠΊΡΠΎΡΠ° ΠΏΠ°ΠΌΡΡΠΈ.