<div class="warning"> 여기사 사용된 그림및 플래쉬 자료에 대한 저작권은 전북대학교 박순철 교수님께 있습니다.

각각의 플래쉬는 파란색의 PLAY버튼을 클릭하면 작동합니다. </div>

Stack#

Stack은 한쪽 끝에서만 데이터를 삽입하고 삭제할수 있는 자료구조이다. 후입선출(LIFO) 이라는 나중에 들어온 데이터가 먼저 나가는 형태의 알고리즘을 사용한다.

다음은 Stack을 나타내는 그림이다. 그림에서 볼수 있듯이 데이터를 쌓기 시작하는 Stack Base point가 있고 제한점이 되는 Stack Limit point가 존재한다. 데이터가 쌓이는 지점을 top이라고 표시하고 Stack pointer가 그 지점을 가리킨다.

1.jpg

다음은 stack에 데이터를 쌓는 작업이 push와 데이터를 다시 빼내는 작업인 pop에 대한 것을 보여준다. 데이터를 삽입하려면 stack pointer를 증가시키고 top에 데이터를 쌓는다. 물론 삽입하기 전에 stack pointer값과 stack limit point값을 비교해서 처리한다.

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0" width="500" height="250"> <param name="movie" value="http://internet512.chonbuk.ac.kr/datastructure/stack/flash/stack_01.swf"> <param name="play" value="false"> <param name="loop" value="false"> <param name="quality" value="high"> <embed src="http://internet512.chonbuk.ac.kr/datastructure/stack/flash/stack_01.swf" play="false" loop="false" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" width="500" height="250"></embed> </object>

동작 방식

  1. push : 데이터를 쌓는 작업이다. top에 데이터를 쌓고 stack pointer를 하나만큼 증가시킨다.
  2. pop : 데이터를 삭제하는 작업이다. top에 있는 데이터를 제거하고 stack pointer를 하나만큼 감소시킨다.
  3. full : top이 stack limit point와 일치하는 시점으로 더이상 데이터를 쌓을수 없는 상태이다.
  4. empty : top이 stack base point와 일치하는 시점으로 더이상 데이터를 제거할수 없는 상태이다.

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
jpg
1.jpg 26.3 kB 1 16-Jul-2007 16:03 DongGukLee
« This page (revision-2) was last changed on 16-Jul-2007 16:03 by DongGukLee  
G’day (anonymous guest) My Prefs

Referenced by
Basic

JSPWiki v2.8.4