๐ฉ 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 |