티스토리 뷰

data structure

stack, queue

tonirr 2020. 3. 13. 17:03
  • 선형 자료구조
    • 데이터와 데이터가 선처럼 일렬로 배치되는 구조
    • 데이터를 자주 넣고 빼는 구조에서는 다른 자료구조가 필요함
      • 그래서 생긴것이 스텍, 큐, 덱
  •  스텍(stack)
    • Last-In First-Out
      • 마지막에 넣은 데이터부터 꺼내어 사용하는 구조
        • ex) 뷔페에서 쌓여서있는 접시를 손님들이 마지막부터 꺼내어 사용하는 구조
        • 웹브라우저 방문기록: 방문한 기록을 스텍에 쌓아두었다가 하나씩 꺼내어 씀
      • push
        • 스택에 데이터를 넣는 기능
      • top
        • 최상위 노드를 top이라는 이름의 참조로 관리
        • 처음 노드가 아무것도 없다면 top은 null값을 가짐
          • push하면 top은 새로 들어온 노드를 참조하며 새로들어온 노드를 바로 직전의 노드를 참조함
          • 스택이 끝나는 부분에서는 null을 참조
      • pop
        • 스택에서 데이터를 빼서 사용하는 기능 
        • pop을 호출하면 top은 최종노드가 가르키는 참조 바로 아래를 가리킴
      • peek
        • 스택의 최종 노드의 참조를 반환하는 기능
  • 큐(queue)
    • First-In First-Out
      • 넣은 순서대로 꺼내어 사용하는 구조
        • ex) 차선이 하나뿐인 터널과 같은 구조: 차가 들어간 순서대로 나온다.
        • 큐는 입력되는 데이터가 즉각 처리되기 힘든 경우에 입력한 데이터를 대기시켰다가 하나씩 꺼내어 처리하는 버퍼의 용도로 주로 사용됨
      • front
        • 노드가 출력되는 부분
        • 큐가 비어있다면 null
      • end
        • 노드가 입력되는 부분
        • 큐가 비어있다면 null
      • enqueue/offer
        • 노드를 넣는 동작
      • dequeue/poll
        • 큐에서 데이터를 빼서 사용하는 기능
        • 스택의 pop과 같다고 생각하면 됨
      • peek
        • front가 가리키는 노드를 단순히 반환하는 역할

'data structure' 카테고리의 다른 글

[Singly Linked List] 검색, 삽입, 삭제  (0) 2020.03.14
[Singly Linked List] node 삽입, 삭제  (0) 2020.03.14
[Singly Linked List] node 추가하기  (0) 2020.03.14
Array, LinkedList  (0) 2020.03.14
Linked List  (0) 2020.03.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함