본문내용
minus;
case '/' : return divide;
case '*' : return times;
case '%' : return mode;
case '\0' : return eos;
default : return operand;
}
}
char print_token(precedence item){ /* return char value about each precedence type */
switch(item){
case lparen : return '(';
case rparen : return ')';
case plus : return '+';
case minus : return '-';
case divide : return '/';
case times : return '*';
case mode : return '%';
case eos : return '\0';
default : break;
}
}
precedence print_char(char item){ /* return precedence value about each char type */
switch(item){
case '+' : return plus;
case '-' : return minus;
case '/' : return divide;
case '*' : return times;
case '%' : return mode;
case '\0' : return eos;
default : return operand;
}
}
void initial_stack(int *ptop){ /* initialize for stack[] reuse(post, pre) */
if(*ptop == -1)
stack[*ptop]='\0';
stack[(*ptop)--];
}
/* notice each other type */
void push(int *ptop, precedence item){ /* post, prefix 구현을 위한 스택 stack */
if(*ptop >= MAX_STACK_SIZE-1)
stack_full();
stack[++(*ptop)]=item;
}
precedence pop(int *ptop){
if(*ptop == -1)
stack_empty();
return stack[(*ptop)--];
}
void push_1(int *ptop, int item){ /* eval()함수를 위한 스택, 수식의 계산을 위해 stack_1을 사용했다. */
if(*ptop >= MAX_STACK_SIZE-1)
stack_full();
stack_1[++(*ptop)]=item;
}
int pop_1(int *ptop){
if(*ptop == -1)
stack_empty();
return stack_1[(*ptop)--];
}
void stack_full(){
fprintf(stderr,"\nstack is full\n");
exit(1);
}
void stack_empty(){
fprintf(stderr,"\nstack is empty\n");
exit(1);
}
case '/' : return divide;
case '*' : return times;
case '%' : return mode;
case '\0' : return eos;
default : return operand;
}
}
char print_token(precedence item){ /* return char value about each precedence type */
switch(item){
case lparen : return '(';
case rparen : return ')';
case plus : return '+';
case minus : return '-';
case divide : return '/';
case times : return '*';
case mode : return '%';
case eos : return '\0';
default : break;
}
}
precedence print_char(char item){ /* return precedence value about each char type */
switch(item){
case '+' : return plus;
case '-' : return minus;
case '/' : return divide;
case '*' : return times;
case '%' : return mode;
case '\0' : return eos;
default : return operand;
}
}
void initial_stack(int *ptop){ /* initialize for stack[] reuse(post, pre) */
if(*ptop == -1)
stack[*ptop]='\0';
stack[(*ptop)--];
}
/* notice each other type */
void push(int *ptop, precedence item){ /* post, prefix 구현을 위한 스택 stack */
if(*ptop >= MAX_STACK_SIZE-1)
stack_full();
stack[++(*ptop)]=item;
}
precedence pop(int *ptop){
if(*ptop == -1)
stack_empty();
return stack[(*ptop)--];
}
void push_1(int *ptop, int item){ /* eval()함수를 위한 스택, 수식의 계산을 위해 stack_1을 사용했다. */
if(*ptop >= MAX_STACK_SIZE-1)
stack_full();
stack_1[++(*ptop)]=item;
}
int pop_1(int *ptop){
if(*ptop == -1)
stack_empty();
return stack_1[(*ptop)--];
}
void stack_full(){
fprintf(stderr,"\nstack is full\n");
exit(1);
}
void stack_empty(){
fprintf(stderr,"\nstack is empty\n");
exit(1);
}
추천자료
- [자료구조] max heap
- [자료구조] BFS&DFS&BST
- 자바 자료구조 족보
- 힙 자료구조를 이용한 상입,제거(특정 토큰에 대해)
- 리스트 자료구조를 이용한 상입,제거(특정 토큰에 대해)
- [자료구조]Infix로 된 수식을 Prefix와 Postfix로 변환 시키는 프로그램입니다.(C언어)
- 알고리즘, 자료구조 중 '문자열매칭' ppt 개념설명 수업시연
- 2010년 2학기 자료구조 출석대체시험 핵심체크
- 2010년 2학기 자료구조 기말시험 핵심체크
- 철근 콘크리트 구조.PPT자료
- 연결리스트(자료구조).ppt
- [자료구조] 피보나치수열 - int 데이타 사이즈를 넘어가는 결과값 계산 프로그램
- C언어 자료구조 Binary Search Tree (이진 탐색 트리)
- C언어 자료구조 HashTable 해시테이블
소개글