• 大小: 159KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签:   

资源简介

数据结构 栈 表达式求值数据结构 栈 表达式求值数据结构 栈 表达式求值

资源截图

代码片段和文件信息

#include“biaodashi.h“
int InitStack(SqStack *S)
{
(*S).base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if( !(*S).base )
exit(0);
(*S).top = (*S).base;
(*S).stacksize = STACK_INIT_SIZE;
return 1;
}
int GetTop(SqStack SSElemType *e)
{
if(S.top > S.base)
{
*e = *(S.top-1);
return 1;
}
else
return 0;
}
int Push(SqStack *S SElemType e)
{
if((*S).top - (*S).base >= (*S).stacksize)
{
(*S).base = (SElemType *)realloc((*S).base
((*S).stacksize + STACKINCREMENT) * sizeof(SElemType));
if( !(*S).base )
exit(0);
(*S).top = (*S).base+(*S).stacksize;
(*S).stacksize += STACKINCREMENT;
}
*((*S).top)++=e;
return 1;
}
int Pop(SqStack *SSElemType *e)
{
if((*S).top == (*S).base)
return 0;
*e = *--(*S).top;
return 1;
}
SElemType Precede(SElemType t1SElemType t2)
{
SElemType f;
    switch(t2)
{
case ‘+‘:
case ‘-‘:if(t1==‘(‘||t1==‘#‘)
                f=‘<‘;
              else
                f=‘>‘;
              break;
     case ‘*‘:
     case ‘/‘:if(t1==‘*‘||t1==‘/‘||t1==‘)‘)
                f=‘>‘;
              else
                f=‘<‘;
              break;
     case ‘(‘:if(t1==‘)‘)
              {
                printf(“ERROR\n“);
                exit(0);
              }
              else
                f=‘<‘;
              break;
     case ‘)‘:switch(t1)
              {
                case ‘(‘:f=‘=‘;
                         break;
                case ‘#‘:printf(“ERROR\n“);
                         exit(0);
                default: f=‘>‘;
              }
              break;
     case ‘#‘:switch(t1)
              {
                case ‘#‘:f=‘=‘;
                         break;
                case ‘(‘:printf(“ERROR\n“);
                         exit(0);
                default: f=‘>‘;
              }
}
return f;
}
int In(SElemType c)
{
switch(c)
{
case‘+‘:
    case‘-‘:
case‘*‘:
case‘/‘:
case‘(‘:
case‘)‘:
case‘#‘:
       return 1;
default:
       return 0;
}
 }

SElemType Operate(SElemType aSElemType thetaSElemType b)
{
SElemType c;
switch(theta)
{
case‘+‘:
c=a+b;
break;
case‘-‘:
c=a-b;
break;
case‘*‘:
c=a*b;
break;
case‘/‘:
c=a/b;
}
return c;
}
SElemType Evaluateexpression()
{
SqStack OPTROPND;
SElemType abdxtheta;
char c;
char z[10];
int i;

InitStack(&OPTR);
Push(&OPTR‘#‘);
InitStack(&OPND);
c=getchar();
GetTop(OPTR&x);
while(c!=‘#‘||x!=‘#‘)
{
if(In(c))
switch(Precede(xc))
{
         case‘<‘:Push(&OPTRc);
                 c=getchar();
                 break;
         case‘=‘:Pop(&OPTR&x);
                 c=getchar();
                 break;
         case‘>‘:Pop(&OPTR&theta);
                 Pop(&OPND&b);
                 Pop(&OPND&a);
                 Push(&OPNDOperate(athetab));
                 break;
}
else if(c>=‘0‘&&c<=‘9‘)
{
i=0;
do
{
z[i]

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3224  2011-10-30 22:04  biaodashi\biaodashi.c

     文件       4450  2011-10-30 23:10  biaodashi\biaodashi.dsp

    I.A....       543  2011-11-22 00:07  biaodashi\biaodashi.dsw

     文件        213  2011-10-30 22:04  biaodashi\biaodashi.h

     文件      50176  2011-11-20 18:03  biaodashi\biaodashi.ncb

    I.A....     48640  2011-11-22 00:07  biaodashi\biaodashi.opt

     文件       1689  2011-10-30 22:04  biaodashi\biaodashi.plg

     文件        157  2011-11-10 01:44  biaodashi\biaodashitest.c

     文件     168034  2011-10-30 22:04  biaodashi\Debug\biaodashi.exe

     文件     189528  2011-10-30 22:04  biaodashi\Debug\biaodashi.ilk

     文件      10169  2011-10-30 22:04  biaodashi\Debug\biaodashi.obj

     文件     177960  2011-10-30 22:04  biaodashi\Debug\biaodashi.pch

     文件     377856  2011-10-30 22:04  biaodashi\Debug\biaodashi.pdb

     文件       2894  2011-10-30 22:04  biaodashi\Debug\biaodashitest.obj

     文件      33792  2011-10-30 22:04  biaodashi\Debug\vc60.idb

     文件      53248  2011-10-30 22:04  biaodashi\Debug\vc60.pdb

    I..D...         0  2011-11-22 00:07  biaodashi\Debug

     目录          0  2011-11-20 18:03  biaodashi

----------- ---------  ---------- -----  ----

              1122573                    18


评论

共有 条评论