0x 00 데이터 구조 - C 언어 구현 (스 택 + 접미사 식 계산)
                                            
 12107 단어  C_C++AlgorithmRead_Notes
                    
창고 의 실현
/*
  (tack)                    ,        ,     (top)。
         Push(  ) Pop(  )。
 Functions:
 (              )
          
         
         
          
     push    
     pop  
         Top  
        ,    ,     
      
*/
#ifndef STACK_H
#define STACK_H
#define MAXLEN 100
typedef enum {
    false = 0,
    true
} BOOL;
//    。
struct node;
typedef struct node node;
typedef struct node *to_node;
typedef to_node pos;
struct stack_node;
typedef struct stack_node stack_node;
typedef stack_node *stack;
//      
stack create_stack(void);
//     
BOOL set_empty(stack s);
//     
int calc_length(stack s);
// push    
int push(stack s, int x);
// pop  
int pop(stack s);
//     Top  
int get_val(stack s);
//    ,    ,     
BOOL is_empty(stack s);
//  
void output(stack s);
#endif#include "stack.h"
#include 
");
}스 택 을 이용 하여 접미사 식 계산 을 진행 합 니 다.
#include if(tmp1=='+' || tmp1=='-' || tmp1 == '*' || tmp1 == '/') {
            op = tmp1;
            tmp1 = pop(s);
            tmp2 = pop(s);
            switch(op) {
                case '+': push(s, tmp1+tmp2);break;
                case '-': push(s, tmp1-tmp2);break;
                case '*': push(s, tmp1*tmp2);break;
                case '/': push(s, tmp1/tmp2);break;
                default: break;
            }
        } else if(isdigit(tmp1)) {
            push(s,tmp1-48);
        }
        output(s);
    }
    output(s);
    return 0;
} 실험 결과
6->|
5->6->|
2->5->6->|
3->2->5->6->|
5->5->6->|
8->5->5->6->|
40->5->6->|
45->6->|
3->45->6->|
48->6->|
288->|
288->|
Time elapsed: 000:00:047
Press any key to continue이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
어떻게 Windows API 를 사용 하여 IP, MAC 를 가 져 옵 니까?여기 서 사용 하 는 두 가지 함수: gethostby name / gethostby addr, GetAdapters Info, 여 기 는 주로 IP 를 가 져 와 링크 를 보 는 동작 입 니 다. 모든 IP 주 소...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.