C++로 스택 구현 / STL stack

< 배열로 구현한 스택 >

 

#include <iostream>

const int MX = 1000005;
int dat[MX];
int pos = 0; // 삽입 인덱스

void push(int x) {
	dat[pos] = x;
	pos++;
}

void pop() {
	pos--;
}

int top() {
	return dat[pos - 1];
}

void test() {
	push(5); push(4); push(3);
	std::cout << top() << '\n'; // 3
	pop(); pop();
	std::cout << top() << '\n'; // 5
	push(10); push(12);
	std::cout << top() << '\n'; // 12
	pop();
	std::cout << top() << '\n'; // 10
}

int main()
{
	test();
}

 

 

< STL stack >

#include <stack>을 포함해주어야 한다!

 

#include <iostream>
#include <stack>

int main()
{
	std::stack<int> stack;
	stack.push(10);
	stack.push(20);
	stack.push(30);

	std::cout << stack.size() << '\n';

	if (stack.empty()) std::cout << "stack is empty\n";
	else std::cout << "stack is not empty\n";

	stack.pop();
	std::cout << stack.top() << '\n';
	stack.pop();
	std::cout << stack.top() << '\n';
	stack.pop();
	if (stack.empty()) std::cout << "stack is empty\n";
	else std::cout << "stack is not empty\n";

	std::cout << stack.top() << '\n';

	return 0;
}

< 참고자료 >

https://blog.encrypted.gg/933

 

[실전 알고리즘] 0x05강 - 스택

안녕하세요, 오늘은 스택을 조져보려고 합니다. 이번 시간부터 세 단원 동안 스택, 큐, 덱을 다룰건데 셋 다 비슷비슷해서 하나만 익히고 나면 전반적으로 어렵지않고, 내용 자체도 연결리스트

blog.encrypted.gg

 

'CS > C++' 카테고리의 다른 글

C++로 덱 구현  (0) 2023.07.11
C++로 큐 구현  (0) 2023.07.11
vector 관련 정리  (0) 2023.07.10
C++ 입력받기  (1) 2023.07.09
C++에서 배열 크기 제한  (0) 2023.07.01