top이라 불리는 한쪽 끝에서 삽입과 삭제가 일어나는 순서 리스트
[Push 과정]
[Pop 과정]
#define MAX_STACK_SIZE 100 #define TRUE 1 #define FALSE 0 typedef struct { int data; } element; element stack[MAX_STACK_SIZE]; int top = -1; int IsFull() { if(top >= MAX_STACK_SIZE-1) { printf("Stack is Full!!\n"); return TRUE; } return FALSE; } int IsEmpty() { if(top < 0) { printf("Stack is Empty!!\n"); return TRUE; } return FALSE; } void Push(element item) { if(IsFull()) { return; } top++; stack[top] = item; } element Pop() { element item; if(IsEmpty()) { exit(1); } item = stack[top]; top--; return item; } int main() { int i; for(i=0; i<10; i++) { element item; item.data = i; Push(item); printf("Push: %d\n", i); } for(i=0; i<10; i++) { element item = Pop(); printf("Pop: %d\n", item.data); } return 0; }
[결과]
'Develop' 카테고리의 다른 글
원형 큐(Circular Queue) (0) | 2014.02.10 |
---|---|
큐(Queue) (0) | 2014.02.09 |
이중 연결 리스트(Double Linked List) (0) | 2014.02.08 |
원형 연결 리스트(Circular Linked List) (0) | 2014.02.07 |
가용 노드 리스트(Available Node List) (0) | 2014.02.07 |