Programming/Data Structure2013. 5. 28. 12:44

 스택(stack)제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝 먼저 내기 목록(Pushdown list)이라고도 한다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(FILO - First In Last Out)으로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸시(push) 라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop) 이라고 하는데, 이 때 꺼내지는 자료는 가장 최근에 보관한 자료부터 나오게 된다. 이처럼 나중에 넣은 값이 먼저 나오는 것을 LIFO 구조라고 한다.

(참고 : http://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D)

 

 데이터를 저장하는 방법인 스택은 FILO(First In Last Out), LIFO(Last In First Out) 으로 불리는데, 먼저 들어간 자료가 나중에 나오고, 나중에 들어간 자료가 먼저 나온다는 의미이다. 스택의 중요 기능으로는, 데이터를 저장하는 Push, 데이터를 빼내는 Pop 이 있다. 아래의 그림과 같이 Push 를 통해 스택에 데이터를 쌓고(저장), Pop 을 통해 스택에서 데이터를 빼내게(삭제) 된다.

 그 밖의 기능으로는 스택이 비어있는지 확인하는 Empty, 스택의 가장 마지막 데이터를 확인하는 Top 이 있다. 기능만 보더라도 스택은 데이터의 입력, 출력이 자유롭지 않다는 것을 알 수 있다. 단지, 가장 마지막에 저장된 데이터만을 사용할 수 있다. 그럼에도 스택은 범용적으로 쓰이는 자료구조이다. 예를 들어, 정적으로 사용되는 자동 메모리도 스택으로 구현되어 있으며, 네트워크 프로토콜들도 대부분 스택으로 구현되어 있다.

Posted by 개발자테오