第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

棧的應(yīng)用---逆波蘭表達(dá)式

標(biāo)簽:
Java

缀表达式 —>> 后缀表达式
stack.h

#define _CRT_SECURE_N0_WARNINGS 1#pragma once#define  Max_size  100#include <stdio.h>#include <assert.h>#include <string.h>typedef int StackDataType;typedef struct Stack{ 
    StackDataType arr[Max_size];    int top;
}Stack;//基本操作void StackInit(Stack* pStack){
    pStack->top = 0;
}void StackDestroy(Stack* pStack){
    pStack->top = 0;
}void StackPush(Stack* pStack, StackDataType data){    //判断栈内是否有空间存放数据
    assert(pStack->top < Max_size);    //进行压栈
    pStack->arr[pStack->top++] = data;
}void StackPop(Stack* pStack){    //判断栈不为空
    assert(pStack->top > 0);    //进行出栈
    pStack->top--;
}StackDataType StackTop(Stack* pStack){    //判断栈不为空
    //返回栈顶元素
    return pStack->arr[pStack->top-1];
}int StackSize(Stack* pStack){    return pStack->top;
}int StackFull(Stack* pStack){    return pStack->top >= Max_size;
}int StackEmpty(Stack* pStack){    return pStack->top <=0;
}//----------------------------//逆波兰表达式(RPN)  后缀表达式//12*(3+4)-6+8/2  ------> 12 3 4 + * 6 - 8 2 / +typedef enum{
    ADD,SUB,MUL,DIV,DATA
}OPERATOR;typedef struct Cell{
    OPERATOR _op;//操作是数字?还是操作符
    int data;//数字是具体值 操作符为0}Cell;int CalcRPN(Cell *RPN,int size){    int i = 0;

    Stack stack;
    StackInit(&stack);    for (; i < size; ++i)
    {        if (DATA == RPN[i]._op)
            StackPush(&stack, RPN[i].data);        else{            int left = 0, right = 0;//定义初始化左右操作数

            right = StackTop(&stack);
            StackPop(&stack);
            
            left = StackTop(&stack);
            StackPop(&stack);            switch (RPN[i]._op)
            {            case ADD:
                StackPush(&stack, left + right);                break;            case SUB:
                StackPush(&stack, left - right);                break;            case MUL:
                StackPush(&stack, left * right);                break;            case DIV:                if (0 == right)
                {                    printf("除数为0,非法!\n");                    return 0;
                }
                StackPush(&stack, left / right);                break;
            }
        }
    }    return StackTop(&stack);
}

main.c

#define _CRT_SECURE_N0_WARNINGS 1#include "stack.h"int main(){    //逆波兰表达式

    Cell RPN[] = { { DATA, 12 }, { DATA, 3 }, { DATA, 4 }, { ADD, 0 }, { MUL, 0 },
    { DATA, 6 }, { SUB, 0 }, { DATA, 8 }, { DATA, 2 }, { DIV, 0 }, { ADD, 0 } };    printf("%d\n", CalcRPN(RPN,  sizeof(RPN) / sizeof(RPN[0]) ) );    return 0;
}



运行结果:

webp



作者:修夏之夏i
链接:https://www.jianshu.com/p/b98dd7338177


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消