일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- WebProgramming
- algorithm
- 자료구조
- Kafka
- 투자
- JavaScript
- Sort
- beans
- OOP
- 노드
- UTF-8
- 악성코드
- meta
- c++
- CSS
- API
- CLASS
- function
- java
- 포인터
- array
- windows
- 윈도우즈
- query
- C
- Call-by-reference
- HTML
- request
- System
- jsp
Archives
- Today
- Total
hahahia
스택(stack) 본문
입력과 출력 작업이 리스트의 한 쪽 끝에서만 이루어지는 선형 리스트의 한 형태
선입후출의 구조(FILO; First-In Last-Out)
/* stack.cpp 배열을 사용한 스택 구현 */
-----------------------------------------------------------------------------
선입후출의 구조(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