일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 윈도우즈
- beans
- WebProgramming
- C
- algorithm
- CSS
- Call-by-reference
- windows
- query
- CLASS
- UTF-8
- 노드
- API
- JavaScript
- System
- request
- jsp
- java
- c++
- HTML
- 투자
- meta
- 자료구조
- OOP
- Kafka
- 악성코드
- Sort
- array
- function
- 포인터
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