a program a day 24(实现一个push pop min均为O(1)的栈)
2010-10-20 23:57
316 查看
/**
*他山之石
**/
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;
}
};
*他山之石
**/
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;
}
};
相关文章推荐
- 实现一个栈, 其 Push,Pop,Min 操作的 时间复杂度 均为 O( 1 )
- 实现一个栈,要求Push/Pop/Min(返回最小值)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push、Pop、Min(返回最小值的操作)的时间复杂度为O(1)
- 【面试题】实现一个栈,要求Push(入栈),Pop(出栈),Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈,要求Push(入栈),Pop(出栈),Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、 Min(返回最小值的操作)的时间复杂度为O(1)
- 【每日一题】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、 Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素。同时,栈的基本操作:入栈(Push)、出栈(Pop),也是在O(1)时间内完成的
- 实现一个栈,Push、Pop、Min的时间复杂度为O(1)【数据结构】
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈,使push,pop,min操作只需要o(1)时间
- 实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 双栈实现队列、双队列实现栈、实现一个栈Push(出栈)Pop(入栈)Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈,要求push,pop,Min的操作时间复杂度为O(1)
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- 剑指offer 21---实现一个栈, 要求实现Push( 出栈) 、 Pop( 入栈) 、 Min( 返回最小值的操作) 的时间复杂度为O(1)
- 实现一个最小栈的push(int x),pop(),top(),min()方法,要求都是常量时间
- 【栈队列】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)