cal.stack

转载 2017年01月03日 21:31:28

#define MAX 100

 

struct operand

{

    int data[MAX];

    int top;

};

 

struct operator_ch

{

    int top;

    char data[MAX];

};

 

 

typedef struct operand OPND;

typedef struct operator_ch OPCH;

 

void init_OPND_stack(OPND *stack)

{

stack->top = -1;

}

 

void init_OPCH_stack(OPCH *stack)

{

stack->top = -1;

}

 

void is_empty_OPND(OPND *stack)

{

if(stack->top == -1)

{

return -1;

}

 

return 0;

}

 

void is_empty_OPCH(OPCH *stack)

{

if(stack->top == -1)

{

return -1;

}

 

return 0;

}

 

int get_OPND_top(OPND *stack)

{

if(is_empty_OPND(stack) == -1)

{

return -1;

}

 

return stack->data[stack->top];

}

 

int get_OPCH_top(OPCH *stack)

{

if(is_empty_OPCH(stack) == -1)

{

return -1;

}

 

return stack->data[stack->top];

}

 

int push_OPND(OPND *stack, int num)

{

    stack->data[++(stack->top)] = num;

}

 

int push_OPCH(OPND *stack, char ch)

{

    stack->data[++(stack->top)] = ch;

}

 

int pop_OPND(OPND *stack)

{

if(is_empty_OPND(stack) == -1)

{

return -1;

}

    

int num = stack->data[stack->top];

 

(stack->top)--;

 

return num;

}

 

char pop_OPCH(OPCH *stack)

{

if(is_empty_OPCH(stack) == -1)

{

return -1;

}

    

char ch = stack->data[stack->top];

 

(stack->top)--;

 

return ch;

}

 

int get_priority(char ch)

{

if(ch == '+' || ch == '-')

{

return 1;

}

 

if(ch == '*' || ch == '/')

{

return 2;

}

}

 

int compare_priority(char op_ch, char ch)

{

if(get_priority(op_ch) > get_priority(ch))

{

return 1;

}

return -1;

}

 

int count(int num1, int num2, char ch)

{

    int result;

 

switch(ch)

{

case '+':

{

            result = a + b;

break;

}

 

case '-':

{

result = a - b;

break;

}

case '*':

{

result = a * b;

break;

}

case '-':

{

result = a / b;

break;

}

}

 

return result;

}

 

int main()

{

    char ch;

char op_ch;

 

while((ch = getchar()) != '\n')

{

        if(ch >= '0' && ch <= '9')

{

            push_stack1();

}

 

if(ch == '+' || ch == '-' || ch == '*' || ch == '/')

{

op_ch = pop_stack2();

if(compare(op_ch,ch) > 0)

{

push_stack2(ch);

}

else

{

count(a,b,op_ch);

}

}

}

return 0;

}

每天一个linux命令:cal 命令

linux cal命令
  • gxiaop
  • gxiaop
  • 2017年02月13日 00:20
  • 313

Linux中的date、cal、bc三个简单命令

1.date命令:显示日期与时间的命令 (1).在终端输入命令date,可以知道Linux操作系统的当前时间,如下图所示: (2).其中date命令又可以带一些参数,如果我们想让当前的...

**KMP算法 Problem A. cal 2016/11/12 字符串 c++

KMP算法 Problem A. cal 2016/11/12 字符串Input file: cal.in Output file: cal.out Time limit: 1s Memor...

骨骼动画系统Cal3D

在群里看到有人把它用在了商业游戏中, 就很好奇为什么用它. 去网站上看了一下, 觉得许多特性很不错, 像动作融合, LOD之类的 试着用DXUT参考miniviewer写了个DEMO, 确实很方便...

CASIO DC-850 DATA-CAL Manual (操作使用方法)

CASIO DC-850 DATA-CAL 电子记事本 网上搜不到完整的使用手册,只有一个设置时间的图片 将用一晚上时间摸索出来的全部功能的使用方法,整理共享...

CAL002-MapKit实战

参考博客:http://www.raywenderlich.com/21365/introduction-to-mapkit-in-ios-6-tutorial      MapKit是苹果提供...

Cal:一个封装类,利用方法对数组进行各种操作

该封装类在Javase—数组高阶习题中有所应用 /** * 利用方法对数组进行各种操作 */ package com.arrayAdd; import java.util.Array...

向优秀的效率类应用学习--智能日历应用(Cal和Sunrise)

Cal [App Store下载 免费]      Cal是口碑甚佳的Any·Do开发团队在2013年年中发布的智能化日历应用。iOS版Any.do Cal在2013年6月发布,Android...
  • whgggg
  • whgggg
  • 2014年02月15日 10:04
  • 661

amp_cal_connection_diagram

  • 2009年05月27日 21:43
  • 71KB
  • 下载

cal3d的入门资料

  • 2009年08月13日 18:01
  • 137KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cal.stack
举报原因:
原因补充:

(最多只允许输入30个字)