반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 익명클래스
- 프로그래머스
- 안드로이드
- 자바
- 네트워크
- dfs
- 모바일
- 백준 알고리즘
- IT
- 익명객체
- 삼성sw문제
- Java
- 개발
- 알고리즘
- CKLU
- 언더라이터
- Android
- 현대오토에버 코딩테스트
- 다이나믹 프로그래밍
- 너비탐색
- 금융IT
- 데이터베이스
- 조합
- 멀티스레드
- 백준
- dp
- BFS
- backjoon
- 삼성SW테스트
- 재귀함수
Archives
- Today
- Total
Limky 삽질블로그
[C언어] 스택[Stack] 구현하기 본문
반응형
C언어로 스택 구현하기
우선 스택을 구현하기 위해 배열이 필요하다.
여기선, 미리 크기를 정한 배열을 이용하여, 스택을 구현해본다.
#include<stdio.h>
#include<stdlib.h>
#define SIZE 10
//스택 구조체
typedef struct stack {
int arr[SIZE];
int top;
};
void stack_init(stack *pstack) {
pstack -> top = -1;
}
//스택이 비어있는지 체크
bool isEmpty(stack *pstack) {
if (pstack->top == -1) {
return true;
}
return false;
}
//삽입
void push(stack *pstack, int data) {
pstack->top += 1;
pstack->arr[pstack->top] = data;
}
//삭제
void pop(stack *pstack){
if (isEmpty(pstack) == true) {
printf("stack is empty..");
}else{
printf("pop : %d\n", pstack->arr[pstack->top]);
pstack->top -= 1;
}
}
//맨위 값 출력
void peek(stack *pstack) {
if (isEmpty(pstack) == true) {
printf("stack is empty..");
exit(-1);
}else {
printf("peek : %d\n", pstack->arr[pstack->top]);
}
}
//배열 스택을 출력
void print(stack *pstack) {
if (isEmpty(pstack) == true) {
printf("stack is empty..");
exit(-1);
}
else {
for (int i = 0; i <= (pstack->top); i++) {
printf("%d번째 %d\n", (i+1),pstack->arr[i]);
}
}
}
int main() {
stack stack;
stack_init(&stack);
push(&stack, 1);
push(&stack, 4);
push(&stack, 5);
push(&stack, 3);
push(&stack, 2);
print(&stack);
pop(&stack);
peek(&stack);
return 0;
}반응형