当前位置: 首页 > news >正文

建设银行住房公积网站任城网络推广教程

建设银行住房公积网站,任城网络推广教程,网站备案需要费用吗,论坛网站建设多少钱表达式求解问题 第四次数据结构实验#xff1a; 实验三#xff1a;表达式求值 实验目的#xff1a; 1、掌握顺序栈结点类型的定义 2、掌握栈的插入和删除结点操作的特点#xff1b; 3、熟悉对栈的一些基本操作和具体的函数定义。 代码#xff1a; 1 /*Status.h 各种常量状…表达式求解问题 第四次数据结构实验 实验三表达式求值     实验目的 1、掌握顺序栈结点类型的定义 2、掌握栈的插入和删除结点操作的特点 3、熟悉对栈的一些基本操作和具体的函数定义。 代码       1 /* Status.h 各种常量状态、结构体的声明文件*/  2 #pragma once  3 #include malloc.h  4 #include stdlib.h  5   6 #define TRUE 1  7 #define FALSE 0  8 #define OK 1  9 #define ERROR 0 10 #define OVERFLOW -2 11 #define INFEASIBLE -1 12  13 typedef int Status; 14  15 typedef char SElemType; 16 #define STACK_INIT_SIZE 100 17 #define STACKINCREMENT  10 18 struct SqStack{ 19     SElemType *base; 20     SElemType *top; 21     int stacksize; 22 }; 23  24 typedef char QElemType; 25 #define MAXQSIZE 100 26 struct SqQueue{ 27     QElemType *base; 28     int front; 29     int rear; 30 }; 31  32 /* SqStack.h CSqStack类的声明文件*/ 33 #pragma once 34 #include Status.h 35  36 class CSqStack 37 { 38 private: 39     //栈数据结构 40     SqStack S; 41 public: 42     CSqStack(void); 43     ~CSqStack(void); 44     //压栈 45     Status Push(SElemType e); 46     //出栈 47     Status Pop(SElemType e); 48     //返回栈顶元素非弹出 49     char GetTop(); 50     //判断是否为空 51     bool Empty(); 52 private: 53     //初始化栈数据结构放在构造函数里私有了.. 54     Status InitStack(); 55 }; 56 /* SqStack.h CSqStack类的定义文件*/ 57 #include SqStack.h 58  59 CSqStack::CSqStack(void) 60 { 61     this-InitStack(); 62 } 63  64 CSqStack::~CSqStack(void) 65 { 66     free(this-S.base); 67 } 68  69 //压栈 70 Status CSqStack::Push(SElemType e) 71 { 72     if (S.top - S.base  S.stacksize) 73     { 74         S.base  (SElemType*)realloc(S.base,(S.stacksizeSTACKINCREMENT)*sizeof(SElemType)); 75         if (!S.base) 76             exit(OVERFLOW); 77         S.top  S.base  S.stacksize; 78         S.stacksize  STACKINCREMENT; 79     } 80     *S.top  e; 81      82     return OK; 83 } 84  85 //出栈 86 Status CSqStack::Pop(SElemType e) 87 { 88     if (S.top  S.base) 89         return ERROR; 90     e  *--S.top; 91  92     return OK; 93 } 94  95 //返回栈顶元素非弹出 96 char CSqStack::GetTop() 97 { 98     if(S.top  S.base) 99         return  ;100 101     return *(S.top-1);102 }103 104 //判断是否为空105 bool CSqStack::Empty()106 {107     return S.top  S.base ? TRUE : FALSE ; 108 }109 110 //初始化栈数据结构放在构造函数里私有了..111 Status CSqStack::InitStack()112 {113     S.base  (SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));114     if(!S.base)115         exit(OVERFLOW);116     S.top  S.base;117     S.stacksize  STACK_INIT_SIZE;118 119     return OK;120 }121 122 /* 123 ///124 Main.cpp 125 main函数所在文件126 0x0oLive.Cn127 08.11.05128 Vista-U  VS2008 下编译通过.129 130 */131 132 #include iostream133 #include Status.h134 #include SqStack.h135 using namespace std;136 137 char Operate(char a,char ch,char b)138 {139     switch (ch)140     {141     case :142         return ab-48;143     case -:144         return a-b48;145     case *:146         return (a-48)*(b-48)48;147     case /:148         return (a-48)/(b-48)48;149     }150 }151 152 char Precede(char ch1,char ch2)153 {154     if (ch1ch2  ch2#)155         return ;156     if (ch1ch2  ch1!#)157         return ;158     if (ch1  #)159         return ;160     if (ch1(  ch2))161         return ;162     if (ch1 ( || ch2()163         return ;164     if (ch2 ) || ch1))165         return ;166     if(ch1* || ch1/)167         return ;168     if (ch2* || ch2/)169         return ;170     else171         return ;172 }173 174 bool IsOpnd(char ch)175 {176     if( ch48  ch57)177         return TRUE;178     else179         return FALSE;180 }181 182 char EvaluateExpression(CSqStack OPND,CSqStack OPTR)183 {184     char ch;185     ch  getchar();186 187     while (ch ! # || OPTR.GetTop() ! #)188     {189         if(IsOpnd(ch))190         {191             OPND.Push(ch);192             ch  getchar();193         }194         else195         {196             switch (Precede(OPTR.GetTop(),ch))197             {198             case :199                 OPTR.Push(ch);200                 ch  getchar();201                 break;202             case :203                 char x;204                 OPTR.Pop(x);205                 ch  getchar();206                 break;207             case :208                 char theta,a,b;209                 OPTR.Pop(theta);210                 OPND.Pop(b);OPND.Pop(a);211                 OPND.Push(Operate(a,theta,b));212                 break;213             default:214                 coutError!endl;215             }216         }217     }218     219     return OPND.GetTop();220 221 }222 223 int main()224 {225     char ch;226     CSqStack OPTR,OPND;227     coutPlease Input The Expression:endl;228 229     OPTR.Push(#);230 231     ch  EvaluateExpression(OPND,OPTR);232 233     cout(int)(ch-48)endl;234 235 236     return 0;237 }238          以上代码存在问题 很明显用char来存输入的数据如果100*2怎么办弹出来的是0….太尴尬了 这个问题其实也挺好解决的例如堆栈的数据类型是int然后把字符接收时处理如果下一个还是数字就把此数字×10下一个数字接受完的时候再存入堆栈即可..。 问题是这个代码的其它地方我还没跟踪明白貌似构造的表达式出现某某现象时最终结果是一个错误的数字… 哎懒得改了..   今天代码写的有点取巧了明显用的就是回文序列里面的代码复用果真很舒服省了很多时间的说…。                                              --------by   0x0o                                           Time 08.11.05 1541   转载于:https://www.cnblogs.com/ns517/archive/2008/11/05/1327378.html
http://wiki.neutronadmin.com/news/280473/

相关文章:

  • 做网站要注意哪些企业网站开发环境
  • 推荐网站建设服务器wordpress qq登入设置
  • 做百度移动端网站软件下载舟山网站建设开发
  • 专做眼镜的网站建设厅官方网站
  • 官网网站怎么做wordpress主题 可爱
  • 外贸网站建设浩森宇特wordpress邮件发文章
  • 宁波seo排名方案优化搜索引擎优化的报告
  • 外贸平台哪个网站最好不收费企业oa办公系统大概多少钱一套
  • 做网站应该注意哪些问题做电视的视频网站
  • 建设个人网站赚钱的经历黄页号码标记申诉
  • 安徽网站优化好不好wordpress索引
  • 深圳企业网站建设报价php+mysql网站开发
  • 做房产中介需要有内部网站吗wordpress 电商
  • 品牌的三大核心价值无锡网站排名优化费用
  • 重庆建站公司费用网站备案号的区别
  • 给城市建设提议献策的网站字体设计作品赏析
  • 如何做手机网站用于建设教学网站的建站工具有哪些特点
  • 杭州久邦电力建设有限公司网站手机排行榜2021前十名性价比
  • 手机网站免费制作平台有哪些江东seo做关键词优化
  • chrome网站开发插件舟山市建设信息港网站打不开
  • 怎样建设企业网站做网站十大公司哪家好
  • 电子请柬网站开发竞赛作品发表网站怎么做
  • 淄博网站建设公司有几家深圳公共交易资源平台
  • 注销建设工程规划许可证在哪个网站百度推广一个月多少钱
  • 建立网站心得自己怎么做网站建设
  • 莱州网站建设方案广告公司名称创意
  • 网站登记备案查询网站建设人员工资
  • 菏砖网站建设网站建设费进什么科目
  • 广西建设监理协会官网站wordpress禁用媒体库
  • 网站工程师简历专业返利网站建设