91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 199KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: C/C++
  • 標簽:

資源簡介

使用棧將中綴表達式轉化為后綴表達式然后求值 語言C++

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
//*******************************************************************************************************
class?Stack{ //棧類定義
private:
double?A[300];

public:
void?InitStack() //初始化
{ A[0]?=?0;}
void?Push(double?key)???//入棧
{
if(A[0]<=?300?-?1)
{
int?i?=?(int)++A[0];
A[i]?=?key;
}
else
printf(“棧已滿!!\n“);
}
double?Pop() //出棧
{
if(A[0]?!=?0)
{
int?i?=?(int)A[0];
A[0]--;
return?A[i];
}

printf(“棧已空!!\n“);
return?-1;
}
bool?IsOneLeft()
{
if((int)A[0]?==?1)
return?1;

return?0;
}
};

//**********************************************************************************************************************
char*?SExp(char?s[]) //求后綴表達式
{
int?iabc=0;
char?A[300]B[300];

i?=?0;
a?=?0;
while(s[i]?!=?‘\0‘) //首次遍歷,檢查是否有輸入錯誤以及整理表達式
{
if(s[i]?<=?‘9‘?&&?s[i]?>=‘0‘) A[a++]?=?s[i]; //數字
else?if(s[i]?==?‘-‘) //減法
{
if(i==0||s[i-1]==‘(‘)
{
A[a++]?=?‘~‘;
}
else?if(s[i+1]!=‘+‘&&s[i+1]!=‘^‘&&s[i+1]!=‘/‘&&s[i+1]!=‘*‘&&s[i+1]!=‘-‘&&s[i+1]!=‘)‘)
A[a++]?=?s[i];
else c=1;
}
else?if(s[i]?==?‘+‘) //加法
{
if(i==0||s[i-1]==‘(‘)
{}
else?if(s[i+1]!=‘+‘&&s[i+1]!=‘^‘&&s[i+1]!=‘/‘&&s[i+1]!=‘*‘&&s[i+1]!=‘-‘&&s[i+1]!=‘)‘)
A[a++]?=?s[i];
else c=1;
}
else?if(s[i]==‘*‘) //乘法
{
if(s[i+1]!=‘+‘&&s[i+1]!=‘^‘&&s[i+1]!=‘/‘&&s[i+1]!=‘*‘&&s[i+1]!=‘-‘&&s[i-1]!=‘(‘&&s[i+1]!=‘)‘&&i!=0) A[a++]?=?s[i];
else c=1;
}
else?if(s[i]==‘/‘) //除法
{
if(s[i+1]!=‘+‘&&s[i+1]!=‘^‘&&s[i+1]!=‘/‘&&s[i+1]!=‘*‘&&s[i+1]!=‘-‘&&s[i-1]!=‘(‘&&s[i+1]!=‘)‘&&i!=0) A[a++]?=?s[i];
else c=1;
}
else?if(s[i]==‘^‘) //指數運算
{
if(s[i+1]!=‘+‘&&s[i+1]!=‘^‘&&s[i+1]!=‘/‘&&s[i+1]!=‘*‘&&s[i+1]!=‘-‘&&s[i-1]!=‘(‘&&s[i+1]!=‘)‘&&i!=0) A[a++]?=?s[i];
else c=1;
}
else?if(s[i]==‘)‘&&s[i-1]!=‘+‘&&s[i-1]!=‘^‘&&s[i-1]!=‘/‘&&s[i-1]!=‘*‘&&s[i-1]!=‘-‘&&s[i+1]!=‘(‘&&s[i-1]!=‘(‘&&i!=0) A[a++]?=?s[i]; //后括號處理
else?if(s[i]==‘(‘&&s[i+1]!=‘^‘&&s[i+1]!=‘/‘&&s[i+1]!=‘*‘&&s[i+1]!=‘)‘&&s[i-1]!=‘)‘) A[a++]?=?s[i]; //前括號處理
else
c=1;
i++;
if(c) //箭頭報錯設置
{
putchar(24);
printf(“\n箭頭處表達式有誤!\n“);
return?NULL;
}
putchar(‘?‘);
}
A[a]=‘\0‘;
strcpy(sA);
//printf(“\n%s“s);

i=0;
a=0;
b=0;
while(s[i]?!=?‘\0‘) //求后綴表達式
{
if(s[i]?<=?‘9‘?&&?s[i]?>=‘0‘||s[i]==‘~‘)
{
A[a++]=s[i++];
while(s[i]?<=?‘9‘?&&?s[i]?>=‘0‘&&s[i]?!=?‘\0‘)
{
A[a++]=s[i++];
}
A[a++]=‘?‘;
continue;
}
else?if(s[i]==‘+‘)
{
if(b==0||B[b-1]==‘(‘) B[b++]=‘+‘;
else
{
A[a++]=B[--b];
A[a++]=‘?‘;
B[b++]=‘+‘;
}
}
else?if(s[i]==‘-‘)
{
if(b==0||B[b-1]==‘(‘) B[b++]=‘-‘;
else
{
A[a++]=B[--b];
A[a++]=‘?‘;
B[b++]=‘-‘;
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????33792??2010-11-12?13:17??中綴表達式求值\Debug\vc60.idb

?????文件??????53248??2010-11-12?13:17??中綴表達式求值\Debug\vc60.pdb

?????文件?????217144??2010-11-12?13:17??中綴表達式求值\Debug\zxbdsqz.exe

?????文件?????228520??2010-11-12?13:17??中綴表達式求值\Debug\zxbdsqz.ilk

?????文件??????13226??2010-11-12?13:17??中綴表達式求值\Debug\zxbdsqz.obj

?????文件?????217588??2010-11-11?18:29??中綴表達式求值\Debug\zxbdsqz.pch

?????文件?????484352??2010-11-12?13:17??中綴表達式求值\Debug\zxbdsqz.pdb

?????文件???????5257??2010-11-12?13:17??中綴表達式求值\zxbdsqz.cpp

?????文件???????3413??2010-11-11?18:27??中綴表達式求值\zxbdsqz.dsp

?????文件????????522??2010-11-11?18:29??中綴表達式求值\zxbdsqz.dsw

?????文件??????41984??2010-11-12?13:23??中綴表達式求值\zxbdsqz.ncb

?????文件??????48640??2010-11-12?13:23??中綴表達式求值\zxbdsqz.opt

?????文件???????1433??2010-11-12?13:17??中綴表達式求值\zxbdsqz.plg

?????目錄??????????0??2010-11-12?13:17??中綴表達式求值\Debug

?????目錄??????????0??2010-11-12?13:23??中綴表達式求值

-----------?---------??----------?-----??----

??????????????1349119????????????????????15


評論

共有 條評論