티스토리 뷰
- 선형 자료구조
- 데이터와 데이터가 선처럼 일렬로 배치되는 구조
- 데이터를 자주 넣고 빼는 구조에서는 다른 자료구조가 필요함
- 그래서 생긴것이 스텍, 큐, 덱
- 스텍(stack)
- Last-In First-Out
- 마지막에 넣은 데이터부터 꺼내어 사용하는 구조
- ex) 뷔페에서 쌓여서있는 접시를 손님들이 마지막부터 꺼내어 사용하는 구조
- 웹브라우저 방문기록: 방문한 기록을 스텍에 쌓아두었다가 하나씩 꺼내어 씀
- push
- 스택에 데이터를 넣는 기능
- top
- 최상위 노드를 top이라는 이름의 참조로 관리
- 처음 노드가 아무것도 없다면 top은 null값을 가짐
- push하면 top은 새로 들어온 노드를 참조하며 새로들어온 노드를 바로 직전의 노드를 참조함
- 스택이 끝나는 부분에서는 null을 참조
- pop
- 스택에서 데이터를 빼서 사용하는 기능
- pop을 호출하면 top은 최종노드가 가르키는 참조 바로 아래를 가리킴
- peek
- 스택의 최종 노드의 참조를 반환하는 기능
- 마지막에 넣은 데이터부터 꺼내어 사용하는 구조
- Last-In First-Out
- 큐(queue)
- First-In First-Out
- 넣은 순서대로 꺼내어 사용하는 구조
- ex) 차선이 하나뿐인 터널과 같은 구조: 차가 들어간 순서대로 나온다.
- 큐는 입력되는 데이터가 즉각 처리되기 힘든 경우에 입력한 데이터를 대기시켰다가 하나씩 꺼내어 처리하는 버퍼의 용도로 주로 사용됨
- front
- 노드가 출력되는 부분
- 큐가 비어있다면 null
- end
- 노드가 입력되는 부분
- 큐가 비어있다면 null
- enqueue/offer
- 노드를 넣는 동작
- dequeue/poll
- 큐에서 데이터를 빼서 사용하는 기능
- 스택의 pop과 같다고 생각하면 됨
- peek
- front가 가리키는 노드를 단순히 반환하는 역할
- 넣은 순서대로 꺼내어 사용하는 구조
- First-In First-Out
'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
링크
TAG
- 클래스
- Java
- 최단경로
- C++
- 입출력장치
- 퀵정렬
- BFS
- 소프트웨어
- 자료구조
- C
- server side rendering
- 구조체
- client side rendering
- javascript
- 인접행렬
- 동적프로그래밍
- 인접리스트
- react
- 병행프로세스
- 스텍
- 재귀함수
- stackframe
- 이진탐색
- Stack
- dfs
- 세마포어
- 교착상태
- 알고리즘
- 배열
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함