hahahia

스택(stack) 본문

Data Structure

스택(stack)

hahahia 2012. 2. 19. 10:04
입력과 출력 작업이 리스트의 한 쪽 끝에서만 이루어지는 선형 리스트의 한 형태
선입후출의 구조(FILO; First-In Last-Out)
/* stack.cpp 배열을 사용한 스택 구현 */

#include <stdio.h> 
#define size 10
char stack[size];
int top = 0; // stack pointer
int i = 0;
void push(char ch); // push
char pop(); // pop
void printstack(); // 현재 stacklist 출력
void push(char ch)
{
if(top==size) // stack overflow
{
printf("stack is full\n");
return;
}
stack[top] = ch; // 스택에 한 문자 삽입
printf("push stack[%d]=%c\n", top, stack[top]);

top++; // stack pointer 1 증가
}

char pop()
{
if(top==0) // 스택이 underflow인경우
{
printf("stack is empty\n");
return 0;
}
top--; // stack pointer 1감소
return stack[top];
}
void printstack()
{
for(i=0;i<top; i++)
{
printf("stack[%d] = %c\n", i, stack[i]); 
}
}
void main()
{
push('a');  // stack에 a, b, c, d, e, f 노드 삽입
push('b');
push('c');
push('d');
push('e');
push('f');
printstack();
for(i=0; i<3; i++)
{
printf("pop stack[%d] = %c\n", top, pop()); // 스택에서 f, e, d를 삭제
}
printstack();


-----------------------------------------------------------------------------


'Data Structure' 카테고리의 다른 글

Binary Trees  (0) 2012.11.07
CircularArray(환형 배열, queue)  (0) 2012.10.24
간단한 리스트 구현(단방향)  (0) 2012.09.08
Linked List(링크드 리스트)  (0) 2012.03.24
큐(Queue)  (0) 2012.03.02
Comments