生无涯

吾生也有涯,而知也无涯,以无涯随有涯,乐以忘忧,生亦无涯矣www.cnblogs.com/shengwuya
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

a program a day 24(实现一个push pop min均为O(1)的栈)

Posted on 2010-10-20 23:57  生无涯  阅读(164)  评论(0编辑  收藏  举报

/**

*他山之石

**/

class stackNode

          double m_dbValue;

         stackNode*m_pNext;

         stackNode*m_pCurentmin;

};

class stack

{

         stackNode*m_pTop;

 

         void push(const double v)

         {

                  stackNode*p=new stackNode();

                  p.m_dbValue;=v;

                  p.m_pNext=m_pTop;

                  if(v<m_pTop.m_pCurentmin.m_dbValue)

                  {

                           p.m_pCurentmin=p;

                  }

                  else

                  {

                           p.m_pCurentmin=m_pTop.m_pCurentmin;

                  }

                  m_pTop=p;

         } 

         double pop()

         {

                  stackNode*p=m_pTop;

                  m_pTop=m_pTop.m_pNext;

                  double value=p.m_dbValue;

                  delete p;

                  return value;

         }

         double min()

         {

                  return m_pTop.m_pCurentmin.m_dbValue;

         }

};