定義棧的資料結構,要求新增乙個min
函式,能夠得到棧的最小元素。
要求函式min
、push
以及pop
的時間複雜度都是
o(1)
。#include #include #include using namespace std;
templateclass mystack
//析構函式
virtual ~mystack()
//判空
int isempty()
//返回棧頂元素
t &top()
//返回棧頂元素
const t &top() const
//入棧
void push(const t &value)
else
else
}} //出棧
void pop()
//返回最小值
const t &min() const };
int main(int argc,char **argv)
{ mystacks;
s.push(3);
s.push(1);
s.push(4);
s.push(2);
//列印棧
while(s.isempty())
{ cout << s.top()<< " 出棧" <
100題 02 設計包含min函式的棧
題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 以下是 pragma once template typename t class stack template typename t class stack node t...
設計包含min函式的棧
本文 題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 分析 這是去年google的一道面試題。我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後p...
設計包含min函式的棧
定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素,要求函式min,push及pop的時間複雜度都是o 1 棧的資料結構包含兩個普通棧,乙個棧存資料,另乙個棧存最小值 或最小值的位置,如果用stl裡的棧,則不能存最小值的位置,因為stl裡的stack不支援下標索引訪問 cpp view ...