티스토리 뷰
#include <Stdio.h>
#define STACKSIZE 100 // 스텍 사이즈
void push(char*,int*,char); // 스텍에 데이터를 삽입한다.
char pop(char*,int*); // 가장 마지막에 삽입된 데이터를 리턴한다.
void printStack(char*,int*); // 현 스택의 내용을 출력한다.
void main(void){
int pt = 0; // 스텍 포인터의 위치
char stack[STACKSIZE]; // 스텍으로 사용하기 위한 배열
push(stack,&pt,'2'); //push(스텍배열 index, 스텍 포인터, 데이터)
push(stack,&pt,'0');
push(stack,&pt,'0');
push(stack,&pt,'6');
push(stack,&pt,'5');
push(stack,&pt,'5');
push(stack,&pt,'5');
push(stack,&pt,'4');
printf("\n");
printStack(stack,&pt); // 스텍의 내용 출력
printf("------------\n");
pop(stack,&pt); // pop(스텍배열 index, 스텍 포인터)
pop(stack,&pt);
pop(stack,&pt);
pop(stack,&pt);
pop(stack,&pt);
pop(stack,&pt);
pop(stack,&pt);
pop(stack,&pt);
printf("\n\n");
}
char pop(char *stack, int *pt){
int data;
if(*pt<=0){
printf("stack is empty\n");
return 0;
}
data = stack[--(*pt)];
printf("\npop[%c]!\n",data);
printStack(stack,pt);
return data;
}
void push(char *stack, int *pt, char data){
if(*pt > STACKSIZE){ // [예외처리]스텍이 가득차면
printf("stack is full!\n"); // error 메세지
return;
}
printf("push[%c]!\n",data);
stack[(*pt)++] = data;
// printStack(stack,pt);
}
void printStack(char *stack, int *pt){ // 스텍에 쌓여 있는 데이타를 모두 출력
int i;
if(*pt<=0){
printf("Empty!\n");
return;
}else{
printf("stack = ");
}
for(i=0;i<*pt;i++){
printf("[%c] ", stack[i]);
}
printf("\n");
}
- Total
- Today
- Yesterday
- elasticsearch
- springboot
- 443
- Windows 서비스 등록
- 스머핑
- 안드로이드
- PoolingHttpClientConnectionManager
- Gradle
- java
- 링크드리스트
- Stack
- insertion
- array
- setDoInput
- code push
- 과거 버전 사용
- LinkedList
- call back
- sort
- docker
- react-native
- Independentsoft
- 선 없이
- Queue
- 개발 설정
- 그라파나
- 빌드 세팅
- 암호
- 젠킨스
- 정렬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |