[자료구조] 스택(Stack)과 큐(Queue)

Doorbals·2022년 12월 30일
0

자료구조

목록 보기
1/5

1. 스택(Stack)

: 먼저 들어온 데이터가 나중에 나가는 형식(선입후출 == FILO)의 자료구조이다.
즉, 출입구가 하나 뿐인 형태이다.

1) 스택 구현 예제

#include <bits/stdc++.h> // 자주 쓸만한 헤더파일을 전부 include 하는 헤더파일

using namespace std;

stack<int> s; // int형 데이터 저장하는 스택 선언

int main()
{
	// 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
    s.push(5);		//.push(data) : data를 스택 맨 뒤에 삽입
    s.push(2);
    s.push(3);
    s.push(7);
    s.pop();		//.pop() : 스택 맨 뒤의 원소를 삭제
    s.push(1);
    s.push(4);
    s.pop();
    
    // 스택 최상단 원소부터 출력
    while(!s.empty())		//.empty() : 스택이 비었는지 확인(비었으면 true, 아니면 false)
    {
    	cout << s.top() << ' ';		//.top() : 스택 맨 뒤의 원소를 반환(삭제 X)
        s.pop();
    }
}

실행 결과 : 1 3 2 5

2. 큐(Queue)

: 먼저 들어온 데이터가 먼저 나가는 형식(선입선출 == FIFO)의 자료구조이다.
즉, 양방향으로 입구와 출구가 따로 존재하는 형태이다.

1) 큐 구현 예제

#include <bits/stdc++.h> // 자주 쓸만한 헤더파일을 전부 include 하는 헤더파일

using namespace std;

queue<int> q; // int형 데이터 저장하는 큐 선언

int main()
{
	// 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제()
    q.push(5);		//.push(data) : data를 큐 맨 뒤에 삽입
    q.push(2);
    q.push(3);
    q.push(7);
    q.pop();		//.pop() : 큐 맨 앞의 원소를 삭제
    q.push(1);
    q.push(4);
    q.pop();
    
    // 스택 최상단 원소부터 출력
    while(!q.empty())		//.empty() : 큐가 비었는지 확인(비었으면 true, 아니면 false)
    {
    	cout << q.front() << ' ';		//.top() : 큐 맨 앞의 원소를 반환(삭제 X)
        q.pop();
    }
}

실행 결과 : 3 7 1 4

출처 : 유튜브 동빈나(https://youtu.be/7C9RgOcvkvo)

profile
게임 클라이언트 개발자 지망생의 TIL

0개의 댓글