정보 처리/자료구조

스택(stack)

본클라쓰 2009. 10. 27. 09:15

 

 여러 개의 데이터 항목들이 일정한 순서로 나열된 자료 구조로, 한쪽 끝에서만 새로운 항목을 삽입하거나 기존 항목을 삭제할 수 있도록 고안된 것이다. 스택에 저장된 데이터 항목들 중에 먼저 삽입된 것은 나중에 삭제되고, 나중에 삽입된 것이 먼저 삭제된다. 그래서 스택을 후입 선출 리스트(Last In First Out List)라고 부른다. 선입 선출법(FIFO)을 사용하는 큐와는 상반된 성질을 가진다.

 


push (스택에 데이터 넣기)

만약 ( 탑값이 n이라면 ) {

    overflow

} 아니라면 {

    top = top + 1;

    스택에 푸시

}

 

 데이터 항목을 삽입하려면 스택 포인터를 하나만큼 증가시켜 주고 스택의 top에 데이터 항목을 저장한다. 이때 데이터를 삽입하기 전 새로운 항목을 저장할 빈 공간이 있는지 검사해야 한다.

 

 

pop (스택에서 데이터 꺼내기)

만약 ( 탑이 0 이라면 ) {

    onderflow

} 아니라면 {

    스택에서 팝

    top = top -1;

}

 

 데이터 항목을 삭제하려면 스택의 top에 있는 데이터 항목을 제거하고 스택 포인터를 하나만큼 감소시켜 준다. 데이터 항목을 삭제하기 전에 스택이 비어있는지를 검사해야 한다.

 


스택을 사용하는 분야

서브 루틴 호출, 순환 프로그램, 인터럽트 처리, 수식 표기, 0-주소, 컴파일러 등

 

'정보 처리 > 자료구조' 카테고리의 다른 글

배열(Array)  (0) 2010.06.17
이중연결 리스트(Double Linked List)  (0) 2010.03.21
트리(Tree)  (0) 2009.10.27
큐(Queue)  (0) 2009.10.27
자료 구조의 개요  (0) 2009.10.26