Stack ,Queue 기본개념

--·2022년 7월 10일
0

Stack

1. 스택(Stack)이란

스택(Stack)은 대표적인 LIFO(Last in First out) 구조입니다.

  • LIFO란 마지막에 들어온 원소가 첫번째로 나간다!
    EX) 팬케이크를 여러 겹 쌓고 팬케이크 더미를 줄이고 싶을 때는 팬케이크를 위에 있는 것 부터 먹는다 = 가장 나중에 쌓은 것 부터 먹음 (LIFO)

2. 스택 헤더 파일

stack STL을 사용하기 위해서는 #include <stack>헤더파일을 이용

  • 스택 선언 방법
    stack<데이터 타입> 이름;
   stack<int> stack;

3. 스택 기본 함수

  1. stack.push(element)
    element를 스택에 추가
  2. stack.pop()
    가장 늦게 들어온 원소(top)를 삭제(출력 안함)
  3. stack.top()
    최상위 데이터(top) 반환
  4. stack.size()
    스택의 크기를 반환
  5. stack.empty()
    스택이 비어있는지 확인
  6. stack.swap(stack1,stack2)
    두개의 스택의 내용을 교환

Queue

1. 큐(queue)란

스택(Stack)은 대표적인 FIFO(First in First out) 구조입니다.
스택과 달리 front 원소와 back 원소에 접근할 수 있는 것이 특징.

  • FIFO란 첫번째에 들어온 원소가 첫번째로 나간다!
    EX) 버스를 탈 때 가장 먼저 온 사람부터 차례대로 타는 것(FIFO)

2. 큐 헤더파일

stack STL을 사용하기 위해서는 #include <queue>헤더파일을 이용

  • 스택 선언 방법
    queue<데이터 타입> 이름;
   queue<int> queue;

3. 큐 기본 함수

  1. queue.push(element)
    element를 큐에 추가
  2. queue.pop()
    가장 늦게 들어온 원소(top)를 삭제(출력 안함)
  3. queue.front()
    첫번째(front) 원소 반환
  4. queue.back()
    마지막(back) 원소 반환
  5. queue.size()
    큐의 크기 반환
  6. queue.empty()
    큐가 비어있으면 true 반환, 아니면 false 반환
  7. queue.swap(stack1,stack2)
    두개의 큐의 내용을 교환

0개의 댓글