차례:
정의-스택이란 무엇입니까?
스택은 일련의 균질 요소로 구성된 개념적 구조이며 LIFO (Last In First Out)의 원리를 기반으로합니다. 푸시 및 팝이라는 두 가지 주요 작업으로 일반적으로 사용되는 추상 데이터 유형입니다. 푸시 및 팝은 가장 최근에 스택에 추가 된 항목 인 최상위 요소에서 수행됩니다. 푸시 조작은 스택에 요소를 추가하는 반면 팝 조작은 요소를 맨 위 위치에서 제거합니다. 스택 개념은 컴퓨터의 프로그래밍 및 메모리 구성에 사용됩니다.
Techopedia는 스택을 설명합니다
스택은 일련의 객체 또는 요소를 선형 데이터 구조 형식으로 나타냅니다. 스택은 바운딩 된 하단으로 구성되며 모든 작업은 상단 위치에서 수행됩니다. 푸시 조작으로 요소를 스택에 추가 할 때마다 최상위 값이 1 씩 증가하고 요소가 스택에서 튀어 나오면 최상위 값이 1 씩 감소합니다. 스택의 상단 위치에 대한 포인터는 스택 포인터라고도합니다.
스택은 크기가 고정되거나 크기가 변경 될 수있는 동적 구현을 가질 수 있습니다. 제한된 용량 스택의 경우 이미 전체 스택에 요소를 추가하려고하면 스택 오버플로 예외가 발생합니다. 마찬가지로 팝 작업이 이미 비어있는 스택에서 요소를 제거하려고하는 조건을 언더 플로라고합니다.
제한된 수의 작업 만 허용되므로 스택은 제한된 데이터 구조로 간주됩니다. 푸시 및 팝 조작 외에도 특정 구현에서는 다음과 같은 고급 조작이 허용 될 수 있습니다.
- 엿보기 - 스택에서 맨 위 항목을 봅니다.
- 복제 - 최상위 항목의 값을 변수에 복사하고 스택으로 다시 밀어 넣습니다.
- 교체 - 스택에서 맨 위 두 항목을 교체합니다.
- 회전 - 숫자로 지정된대로 스택에서 맨 위 요소를 이동하거나 회전 방식으로 이동합니다.
스택 개념의 소프트웨어 구현은 변수 또는 헤더 포인터를 각각 사용하여 최상위 위치를 추적하는 배열 및 링크 된 목록을 사용하여 수행됩니다. 많은 프로그래밍 언어가 내장 기능을 제공하여 스택 구현을 지원합니다.
고정 된 원점 및 크기를 사용하여 메모리 할당 및 액세스를 위해 하드웨어 스택이 구현됩니다. 스택 레지스터는 스택 포인터의 값을 저장하는 데 사용됩니다.
