데이터 구조 -- 표현 식 값 구하 기 (스 택 기반)
2385 단어 데이터 구조
표현 식 의 값 을 구 하 는 것 은 이해 하기 어렵 습 니 다. 특히 각종 표현 식 의 우선 순 위 는 자신 이 디자인 해 야 합 니 다. 그리고 자신 이 이 우선 순위 의 비교 관 계 를 프로그램 에 어떻게 가 져 가 는 지 봐 야 합 니 다.여기 우리 문 은 스스로 간단 한 스 택 을 쓸 수도 있 고 시스템 자체 의 \ # include 를 호출 할 수도 있 습 니 다.
코드 블록:
#include
#include
#include
#include //stack top( ),push( ),pop ( )
using namespace std;
stack optr; //
stack optn; //
int zuobiao(char ch) //
{
int biao=0;
switch(ch)
{
case'+':
biao=0;break;
case'-':
biao=1;break;
case'*':
biao=2;break;
case'/':
biao=3;break;
case'(':
biao=4;break;
case')':
biao=5;break;
case'$':
biao=6;
default:break;
}
return biao;
}
char quyou(char ch2,char ch1) //
{
const char youxian[7][7]=
{
{ '>','>','','>' },
{ '>','>','','>' },
{ '>','>','>','>','','>' },
{ '>','>','>','>','','>' },
{ '','>','>','>','0','>','>' },
{ '='0'&&h<='9') // else,i 1, , if, if
{
if(i==1) // ,x
{
int x=optn.top();
optn.pop();
optn.push(10*x+(h-'0'));
i=1; // i=1 , h
}
else //
{
optn.push(h-'0');
i++;
}
h=getchar(); //
}
else // h
{
int a=0;int b=0;char w;i=0;
switch(quyou(h,optr.top())) //h
{
case'':
//h=getchar();
//optn.push(h);
w=optr.top();optr.pop();
a=optn.top();optn.pop();
b=optn.top();optn.pop();
cal(a,w,b);
optn.push(cal(a,w,b)); //
}
}
//optn.top();
}
return optn.top(); //top
//cout<>n;
cout<
이 실험 은 주로 창고 에 대한 이 해 를 깊이 있 게 하기 위 한 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.