스택은 수차 자료구조인 1차원 배열을 이용하여 스택을 구현할 수 있다. 1차원
배열인 stack[n]을 사용할 때 n은 배열 크기로서 배열원소의 갯수를 나타내는
데, 이것이 스택의 크기다. 스택에 원소가 쌓이는 순서는 배열의 인덱스로 표현
한다. 따라서 스택의 첫 번째 원소는 stack[0]에 저장되고, 스택의 두 번째 원
소는 stack[1]에 저장되고, 스택의 i번째 원소는 stack[i-1]에 저장된다.
스택이 top을 표현하기 위해서 배열 stack의 마지막 원소의 인덱스를 변수 top
에 저장한다. 변수 top에 0부터 n-1까지의 인덱스를 저장하게 되므로 스택의 초
기 상태에는 -1을 저장한다..
아래는 간단히 구현한 스택의 소스 이다.
#include <stdio.h>
#define STACK_SIZE 100
int stack[STACK_SIZE] ;
int top = -1 ;
void push(int Num)
{
if( top >= STACK_SIZE - 1)
return ;
else stack[++top] = Num ;
}
int pop()
{
if( top == -1)
return 0 ;
else return stack[top--] ;
}
void printStack()
{
printf("Stack [ ") ;
for( int i = 0 ; i <= top ; ++i )
printf("%d ", stack[i]) ;
printf("] \n") ;
}
void main()
{
printStack() ;
push(1) ;
printStack() ;
push(2) ;
printStack() ;
push(3) ;
printStack() ;
pop() ;
printStack() ;
pop() ;
printStack() ;
pop() ;
printStack() ;
}
정말 간단한 구조이기 때문에 그냥 스택이 이런거구나 하는데만 쓰면 된다..
'프로그래밍 > 자료구조' 카테고리의 다른 글
[자료구조] 스택의 응용 (0) | 2011.09.27 |
---|---|
[자료구조] 스택 ( stack ) 의 구현. 연결 자료구조. (0) | 2011.09.21 |
[자료구조] 스택(stack) 이란... (0) | 2011.09.08 |
[자료구조] 연결 자료구조 (0) | 2011.09.06 |
[자료구조] 순차 자료구조 - 선형 리스트의 구현 (0) | 2011.09.06 |