前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++编程之美-结构之法(代码清单3-9)

C++编程之美-结构之法(代码清单3-9)

作者头像
cwl_java
发布2022-11-30 08:52:32
1200
发布2022-11-30 08:52:32
举报
文章被收录于专栏:cwl_Javacwl_Java

代码清单3-9

代码语言:javascript
复制
class stack
{
public:

     stack()
     {
          stackTop = -1;
          maxStackItemIndex = -1;
     }
     void Push(Type x)
     {
          stackTop++;
          if(stackTop >= MAXN)
               ;        //超出栈的最大存储量
          else
          {
               stackItem[stackTop] = x;
               if(x > Max())
               {
                    link2NextMaxItem[stackTop] = maxStackItemIndex;
                    maxStackItemIndex = stackTop;
               }
               else
                    link2NextMaxItem[stackTop] = -1;
          }
     }

     Type Pop()
     {
          Type ret;
          if(stackTop < 0)
               ThrowException();    //已经没有元素了,所以不能pop
          else
          {
               ret = stackItem[stackTop];
               if(stackTop == maxStackItemIndex)
               {
                    maxStackItemIndex = link2NextMaxItem[stackTop];
               }
               stackTop--;
          }
          return ret;
     }

     Type Max()
     {
          if(maxStackItemIndex >= 0)
               return stackItem[maxStackItemIndex];
          else
               return –INF;
     }

private:

     Type stackItem[MAXN];
     int stackTop;
     int link2NextMaxItem[MAXN];
     int maxStackItemIndex; 
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码清单3-9
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档