100題 設計包含min 函式的棧

2021-06-07 18:35:03 字數 705 閱讀 3593

定義棧的資料結構,要求新增乙個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 ...