栈实现加减乘除

写的很麻烦,毕竟算是刚开始学,希望以后能写的又快又好。括号功能没加,数字位数大于1位的恐怕要加个函数转换了。

编译环境:vc++6.0

// demo1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


/*
栈 实现 加减乘除运算
*/

typedef struct openStack{
    int  *top;
    int  *base;
    //栈的大小
    int stackSize;
}open;

typedef struct oprtStack{
    char  *top;
    char  *base;
    int stackSize;
}oprt;

//初始化栈
void initStack(oprt * oprt1);
void initStack(open * open1);
//获得栈的顶端元素
int getTop(open * open1);
int getTop(oprt * oprt1);
//进栈
void push(open *open1,int e);
void push (oprt *oprt1,char e);
//顶端出栈
int pop(open *open1);
char pop(oprt *oprt1);
//查看栈
void visit(oprt * oprt1);
void visit (open * open1);

int isExist(open *open1);
int isExist(oprt *oprt1);
//比较优先级与计算
int precede(char x,char y);
int operate(int a,char b,int c);

int main(int argc, char* argv[])
{
    char *str = (char *)malloc(100);
    char x='\0';
    int y = 0;
    int i = 0;
    int a,b,c;
    oprt * oprt1 = (oprt *)malloc(sizeof(oprt));
    //初始化两个栈
    oprt1->stackSize=-1;
    open * open1=(open *)malloc(sizeof(open));
    open1 ->stackSize =-1;
    printf("输入一段字符串:\n");
    //获取运算符
    gets(str);
    //printf("%s",str);
    //初始化
    initStack(oprt1);
    initStack (open1);
    //写入栈并运算
    while(*(str+i)!='#')
    {
        char flag = *(

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值