스택

Untitled

python

stack = []

# 삽입(5) - 삽입(2) - 삽입(3) - 삭제() - 삽입(3) - 삭제
stack.append(5)
stack.append(2)
stack.append(3)
stack.pop()
stack.append(3)
stack.pop()

print(stack) #최하단 원소부터 출력
print(stack[::-1]) #최상단 원소부터 출력

선입 후출 먼저들어온 원소가 나중에 나가는 최하단 원소

c++

#include <bits/stdc++.h>

using namespace std;    //:std 생략

stack<int> s; //s 배열 선언

int main(void) {
	s.push(5);
	s.push(2);
	s.push(3);
	s.pop();
	s.push(3);
	s.pop();

	// 스택의 최상단 원소부터 출력
	while (!s.empty()) { //s배열이 비어있을 때 까지
		cout << s.top << " "; // s의 최상단 원소 출력
		s.pop(); //s의 최상단 원소 삭제
	}
}

큐 Queue

서구권에서 대기열을 의미

선입 선출

Untitled

from collections import deque

# 큐 (Queue)
queue = deque()

queue.append(5)
queue.append(2)
queue.append(3)
queue.append(7)
queue.popleft()

print(queue) #먼저 들어온 순서
queue.reverse()  #역순 정렬
print(queue)  # 나중에 들어온 원소부터 출력

팩토리얼

n은 스택으로 남고 재귀는 계속해서 반환됨