您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 訂閱轉換服務地址是什么數據結構(設計算法,將一個無向圖的鄰接矩陣轉換為鄰接表.求大神。這是數據結構里的問題。)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-27 06:20:01【】6人已围观
简介k++;q->p=q->p->p;v=pd(q->p->c);w=pd(q->c);}if(a[v][w]==1)q=q->p->p;break;}}q
k++;
q->p=q->p->p;
v=pd(q->p->c);
w=pd(q->c);
}
if(a[v][w]==1)
q=q->p->p;
break;
}
}
q=new node;
for(i=0;i<=k-1;i++){
if(((t[i]>'9')||(t[i]<'0'))&&(t[i-1]>='0')&&(t[i-1]<='9')){
o=1;
v=i-1;
w=0;
while(t[v]>='0'){
w=w+o*(t[v]-'0');
o=o*10;
v--;
}
r=q;
q=new node;
q->h=w;
q->p=r;
}
switch(t[i]){
case '+':
q->p->h+=q->h;
q=q->p;
break;
case '-':
q->p->h-=q->h;
q=q->p;
break;
case '*':
q->p->h*=q->h;
q=q->p;
break;
case '/':
q->p->h/=q->h;
q=q->p;
break;
}
}
買粉絲ut<<q->h;
return 0;
}
中綴表達式轉換成后綴表達式并求值中綴表達式轉換成后綴表達式并求值
算法:
中綴表達式轉后綴表達式的方法:
1.遇到操作數:直接輸出(添加到后綴表達式中)
2.棧為空時,遇到運算符,直接入棧
3.遇到左括號:將其入棧
4.遇到右括號:執行出棧操作,并將出棧的元素輸出,直到彈出棧的是左括號,左括號不輸出。
5.遇到其他運算符:加減乘除:彈出所有優先級大于或者等于該運算符的棧頂元素,然后將該運算符入棧
6.最終將棧中的元素依次出棧,輸出。
例如
a+b*c+(d*e+f)*g ----> abc*+de*f+g*+
遇到a:直接輸出:
后綴表達式:a
堆棧:空
遇到+:堆棧:空,所以+入棧
后綴表達式:a
堆棧:+
遇到b: 直接輸出
后綴表達式:ab
堆棧:+
遇到*:堆棧非空,但是+的優先級不高于*,所以*入棧
后綴表達式: ab
堆棧:*+
遇到c:直接輸出
后綴表達式:abc
堆棧:*+
遇到+:堆棧非空,堆棧中的*優先級大于+,輸出并出棧,堆棧中的+優先級等于+,輸出并出棧,然后再將該運算符(+)入棧
后綴表達式:abc*+
堆棧:+
遇到(:直接入棧
后綴表達式:abc*+
堆棧:(+
遇到d:輸出
后綴表達式:abc*+d
堆棧:(+
遇到*:堆棧非空,堆棧中的(優先級小于*,所以不出棧
后綴表達式:abc*+d
堆棧:*(+
遇到e:輸出
后綴表達式:abc*+de
堆棧:*(+
遇到+:由于*的優先級大于+,輸出并出棧,但是(的優先級低于+,所以將*出棧,+入棧
后綴表達式:abc*+de
*堆棧:+(+
遇到f:輸出
后綴表達式:abc*+de*f
堆棧:+(+
遇到):執行出棧并輸出元素,直到彈出左括號,所括號不輸出
后綴表達式:abc*+de*f+
堆棧:+
遇到*:堆棧為空,入棧
后綴表達式: abc*+de*f+
堆棧:*+
遇到g:輸出
后綴表達式:abc*+de*f+g
堆棧:*+
遇到中綴表達式結束:彈出所有的運算符并輸出
后綴表達式:abc*+de*f+g*+
堆棧:空
例程:
這是我自己寫的一個簡單的中綴表達式求值程序,簡單到只能計算10以內的數,支持+-*/()運算符。
#include <stack>
using namespace std;
bool IsOperator(char ch)
{
char ops[] = "+-*/";
for (int i = 0; i < sizeof(ops) / sizeof(char); i++)
{
if (ch == ops[i])
return true;
}
return false;
}
比較兩個操作符的優先級
int Precedence(char op1, char op2)
{
if (op1 == '(')
{
return -1;
}
if (op1 == '+' || op1 == '-')
{
if (op2 == '*' || op2 == '/')
{
return -1;
}
else
{
return 0;
}
}
if (op1 == '*' || op1 == '/')
{
if (op2 == '+' || op2 == '-')
{
return 1;
}
else
{
return 0;
}
}
}
中綴表達式轉換成后綴表達式
void inFix2PostFix(char* inFix, char* postFix)
{
int j = 0, len;
char c;
stack<char> st;
len = strlen(inFix);
for (int i = 0; i < len; i++)
{
c = inFix[i];
if (c == '(')
st.push(c);
else if (c == ')')
{
while (st.() != '(')
{
postFix[j++] = st.();
st.pop();
}
st.pop();
}
else
{
if (!IsOperator(c))
st.push(c);
else
{
while (st.empty() == false
&& Precedence(st.(), c) >= 0)
{
postFix[j++] = st.();
st.pop();
}
st.push(c);
}
}
}
while (st.empty() == false)
{
postFix[j++] = st.();
st.pop();
}
postFix[j] = 0;
}
后綴表達式求值程序
double postFixEval(char* postFix)
{
stack<char> st;
int len = strlen(postFix);
char c;
for (int i = 0; i < len; i++)
{
c = postFix[i];
if (IsOperator(c) == false)
{
st.push(c - '0');
}
else
{
char op1, op2;
int val;
op1 = st.();
st.pop();
op2 = st.();
st.pop();
switch (c)
{
case '+':
val = op1 + op2;
break;
case '-':
val = op2 - op1;
break;
case '*':
val = op1 * op2;
break;
case '/':
val = op2 / op1;
break;
}
st.push(val);
}
}
return s
很赞哦!(7359)
相关文章
- 01 microsoft365訂閱到期了怎么辦嗎(office365怎么取消自動續費)
- 02 youtube官網網頁版優化設置工具官網買粉絲(如何進行網絡營銷?)
- 01 mouse和買粉絲usin的ou發音一樣嗎(音節相同的和音節不同的單詞怎么容易分辨)
- 01 music youtube 買粉絲 music from the 80s uk(杰西麥卡特尼Jesse McCartney 資料)
- 01 music library - youtube(有沒有可以隨意使用的無版權音樂資源庫?)
- 01 mp3 player 買粉絲 download youtube 買粉絲(請達人幫我解惑!關于視頻格式轉換的問題)
- 01 lv女包capucines bb粉色容易發黃嗎(lvcapucinesbb四葉花鏈條包尺寸)
- 02 youtube官網網頁版優化補丁下載不了軟件(python能做什么)
- 02 youtube官網網頁版下載視頻教程百度云下載(迅雷、百度云速度太慢?這 6 個超好用的下載工具你一定要知道)
- 02 youtube官網網頁版優化設置工具官網下載安裝(you tu be的官網是多少?)
热门文章
站长推荐
01 lv高端系列capucines怎么讀(lvcapucines蛇皮手柄真假)
01 mill finish什么意思中文(表面處理MILL FINISH 是什么意思)
01 mp3 youtube download 320 mp3(什么是RMVB)
02 youtube官網網頁版優化差是什么意思啊(youtube網頁版怎么看)
01 music youtube music 2022 with(如何讓YTmusic在后臺播放)
02 youtube官網網頁版優化差分析兩兩比較怎么(網站seo關鍵詞軟件工具有哪些)
02 youtube官網網頁版優化差分析兩兩比較怎么(PS軟件各個版本區別大嗎?哪個版本最適合新手?)
01 lv capucines系列值得買嗎(lvcapucines蛇皮手柄真假)