์Šคํƒ(Stack)

2024. 4. 12. 14:03ยท ๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/โœจ ์ž๋ฃŒ๊ตฌ์กฐ

๐ŸŸฉ LIFO (Last In First Out)

 

๐ŸŸฉ DFS (๊นŠ์ด์šฐ์„ ํƒ์ƒ‰)

ํ›„๋ณด ์ค‘์—์„œ ํ•ญ์ƒ ์ตœ์‹ ์˜ ๊ฒƒ์„ ์„ ํƒ

 

๐ŸŸฉ <stack> ํ—ค๋” ์ถ”๊ฐ€

 

๐ŸŸฉ ์ฃผ์š” ๋™์ž‘

push ์‚ฝ์ž…

pop ์ถ”์ถœ

peek ๊ฐ€์žฅ ์ตœ์ƒ๋‹จ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ

 

๐ŸŸฉ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋ฃจ์–ด์ง

๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ, ๊ฐ€์žฅ ์œ„์— ์ถ”๊ฐ€๋œ๋‹ค.

์‚ญ์ œ๋„ ๊ฐ€์žฅ ์œ„์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ๋„ ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๊ทธ ๋•Œ๊นŒ์ง€ popํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฉค๋ฒ„ ํ•จ์ˆ˜ ๊ธฐ๋Šฅ
s.size() s์˜ ์‚ฌ์ด์ฆˆ(๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ์šฉ๋Ÿ‰์ด ์•„๋‹Œ ์›์†Œ์˜ ๊ฐœ์ˆ˜)๋ฅผ ๋ฆฌํ„ด
s.empty() s์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 0์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธ
s.top() s์— ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์›์†Œ๋ฅผ ๋ฆฌํ„ด
s.push(val) s์˜ ๋’ค์— val๋ฅผ ์ถ”๊ฐ€
s.pop() s์— ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์›์†Œ๋ฅผ ์‚ญ์ œ

 

stack<int> s;
 
for(int i=1; i<=5; i++)
    s.push(i);
 
cout << s.size();                                        // 5
 
//s๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์€ ๋™์•ˆ
while(!s.empty())
{
    int n = s.top();
    s.pop();
 
    cout << n << '\n';                                   // 5 4 3 2 1 
}
 
cout << s.size();
// ์Šคํƒ ์ƒ์„ฑ
#define STACK_SIZE 10
typedef int element;
element stack[STACK_SIZE];
int top = -1;

// ์Šคํƒ ์‚ญ์ œ
element pop( ) {
	if (top == -1) {
		printf(โ€œStack is Empty!!\nโ€);
		return 0;
	}
	else
		return stack[top--];
}

// ์Šคํƒ ์‚ฝ์ž…
void push(element๔€€item){ //item=400
	if(top>=STACK_SIZE-1){//์Šคํƒ์ด ์ด๋ฏธ FULL์ธ ๊ฒฝ์šฐ
		printf(โ€œStack is Full!!\nโ€);
		return;
	}
	else
		stack[++top]=item;
}
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ > โœจ ์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํž™(Heap) cf.์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ  (0) 2024.04.12
ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)  (1) 2024.04.12
ํ(Queue)  (1) 2024.04.12
๋ฆฌ์ŠคํŠธ(List)  (0) 2024.04.11
๋ฐฐ์—ด(Array)  (0) 2024.04.11
'๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/โœจ ์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํž™(Heap) cf.์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ
  • ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)
  • ํ(Queue)
  • ๋ฆฌ์ŠคํŠธ(List)
peewoong
peewoong
peewoong
peewoong.log
peewoong
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • ๐Ÿ™‚ Info
    • ๐ŸŽฎ ๊ฒŒ์ž„ ๊ด€๋ จ ๊ฐœ๋…
    • ๐Ÿ‘ฉโ€๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • ๐ŸŽญ C
      • ๐ŸŽ  C++
      • ๐Ÿ• C#
      • โœจ ์ž๋ฃŒ๊ตฌ์กฐ
      • ๐ŸŽ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • ๐Ÿ”ข ์ˆ˜ํ•™
      • ๐ŸŽจ ๊ทธ๋ž˜ํ”ฝ์Šค
    • โš™๏ธ ์—”์ง„
      • ๐Ÿง€ VS
      • ๐Ÿค ์œ ๋‹ˆํ‹ฐ
      • ๐Ÿซ ์–ธ๋ฆฌ์–ผ
      • ๐Ÿน DirectX
      • ๐Ÿฆฅ error
    • ๐Ÿ“ฝ๏ธ ํ”„๋กœ์ ํŠธ
    • ๐Ÿง ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.0
peewoong
์Šคํƒ(Stack)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.