티스토리 뷰
Stack이란?
스택(stack)은 제한적으로 접근할 수 있는 나열 구조
그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다.
스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)으로 되어 있다. 꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 된다.
(출처 : Wikipedia - 스택)
- Push : 스택에 데이터 추가
- Pop : 스택에서 데이터 빼기
- Top : 스택의 최상단을 의미. 이걸 넘어가면 Stack overflow 발생
- 스택에 더 이상 뺄 것이 없을 때 pop을 하면 Stack underflow 발생
스택의 구현방법
- 배열(배열을 이용할 경우 메모리 낭비가 발생할 수 있음)
- 스택을 선언하고 크기를 정해줌
- 최상단을 의미하는 Top 변수를 생성
- 추가할 때는 Top에 1을 더한 값에 데이터를 넣어줌
- 뺄 때는 데이터를 빼고 변경된 Top 위치를 업데이트하기 위해 1을 빼줌
- 연결리스트
- 스택 구조체를 만들어줌
- 포인터 변수를 만들어 다음 노드를 가리킬 수 있도록함
- 추가할 떄는 삽입할 노드의 next가 top을 가리키도록함
- 삭제할 때는 Top 노드를 두번째 노드로 변경해 주고, 기존 Top을 할당 해제함
참고 | Wikipedia, fast campus 컴퓨터공학 전공 필수
'컴퓨터공학' 카테고리의 다른 글
[자료구조] 삽입정렬 (0) | 2019.10.11 |
---|---|
[자료구조] 선택정렬 (0) | 2019.10.11 |
[자료구조] Queue (0) | 2019.10.09 |
[자료구조] Linked List (0) | 2019.10.09 |
[자료구조] 자료구조의 개요 (0) | 2019.10.08 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Typescript
- 웹팩
- 1day1algorithm
- OS
- js
- 우아한테크러닝
- Algorithm
- Props
- 배열
- 시분할시스템
- 배치처리시스템
- 자료구조
- React
- sort()
- Array
- 알고리즘
- greedyAlgorithm
- reduce()
- 리액트
- redux-saga
- Webpack
- 프로그래머스
- sort
- javascript
- 운영체제
- 자바스크립트
- 컴퓨터공학
- 구간합
- 멀티프로그래밍
- 타입스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함