网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C/C++ > 正文
C++利用堆栈编写的一位整数中缀表达式计算器
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

/*******************************************
 * file: stack_cal.cpp
 * author: ideawu
 * date: 2006-11-17

* 整理 http://www.programbbs.com
 *******************************************/

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

typedef enum{
    Token_Error = 0,
    Token_Int = ''i'',
    Token_Div = ''/'',
    Token_Mul = ''*'',
    Token_Sub = ''-'',
    Token_Add = ''+'',
    Token_Mod = ''%'',
    Token_Lp = ''('',
    Token_Rp = '')''
}TokenType;

class Token{
public:
    int type;
    double value;

    Token(){
        type = Token_Error;
        value = 0;
    }
};

class ArrayStack{
private:
    char * name;
    Token *tokens;
    int size;
    int capacity;

public:
    ArrayStack(char* n){
        name = n;
        size = 0;
        capacity = 256;
        tokens = new Token[capacity];
    }

    ~ArrayStack(){
        delete tokens;
    }

    int getSize(){
        return size;
    }

    bool isEmpty(){
        return (size == 0);
    }

    bool isFull(){
        return (size == capacity);
    }

    void push(Token token){
        if(size < capacity){
            tokens[size ++] = token;
        }else{
        }
    }

    Token* pop(){
        if(size > 0){
            size --;
            return &tokens[size];
        }else{
            return NULL;
        }
    }

    Token* peek(){
        if(size > 0){
            return &tokens[size-1];
        }else{
            return NULL;
        }
    }

    void toString(){
        if(s

  • 下一篇资讯: C/C++时间函数介绍
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号