Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 |
| 30 |
Tags
- s
- JSON
- stream
- C programming
- 이것이 자바다
- coding test
- insertion sort
- R
- buffer
- Serialization
- 윤성우 열혈자료구조
- 윤성우의 열혈 자료구조
- C 언어 코딩 도장
- Graph
- Algorithm
- 이스케이프 문자
- Stack
- 메모리구조
- 알기쉬운 알고리즘
- Selection Sorting
- datastructure
- 혼자 공부하는 C언어
- list 컬렉션
Archives
- Today
- Total
Engineering Note
Stack 본문
스택은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(LIFO, Last In First Out, FIFO,First In Last Out)입니다.
기본적으로 입력과 출력 이라는 함수 인터페이스로 동작합니다.


* 자료구조 코드 구현시 Tip
1.해당 자료구조 개념에 대한 이해
2.이해한 내용을 바탕으로 해당 자료구조에 어떤 데이터와 함수 인터페이스가 필요할지 생각
(위의 내용을 추상화라고 하고 이 추상화하는 것이 중요함)
3.기본적인 코드를 구현한 후에는 예외상황들에 대한 코드 최적화 작업을 진행
ex) 스택에서는 데이터를 넣고 뺄 메모리공간을 쉽게 만들수 있는 배열로 메모리공간을 생성하고 순서(데이터 위치상태)를 기억하기 위한
top변수가 필요함을 생각합니다. 그리고 데이터를 넣는 Push함수, Pop함수를 생성합니다.
그리고 코드 최적화 단계에서 어플리케이션 별로 스택이 필요 할 수 있으므로 위의 배열 메모리공간과 top변수를 위한 구조체를 생성하고 초기화 함수를 통해 해당 배열이 프로그램 동작시 공간을 할 당할 수 있는 동적배열 형태로 생성하도록 합니다.
스택의 활용
- 부 프로그램 호출 시 복귀주소를 저장할 때
- 함수 호출의 순서 제어
- 인터럽트가 발생하여 복귀주소를 저장할 때
- 후위 표기법(Postfix Notation)으로 표현된 수식을 연살할 때
- 재귀(Recursive) 프로그램의 순서 제어
- 컴파일러를 이용한 언어 번역 시

'Computer Science > Data Structure & Algorithm' 카테고리의 다른 글
| Chapter 01 자료구조와 알고리즘의 이해 (0) | 2021.01.07 |
|---|---|
| 이진탐색 알고리즘의 재귀적 구현(C언어) (0) | 2021.01.06 |
| Recursion (0) | 2021.01.06 |
| Queue (0) | 2021.01.06 |
| 자료구조 코드 구현 Tip (0) | 2021.01.06 |
Comments
