設計包含min函式的棧。
定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。
要求函式min、push以及pop的時間複雜度都是o(1)。
**如下:
stack.h
#pragma once
#include //simulation stack datastruct
templateclass node
t data;
node * pre;
bool operator >(const t & t)
return false;
}};templateclass stack
node* cur;
void pushback(node* node)
void popback()
node* min(int destmin)
else
}assert(cur != null);
if (cur->data != destmin)
return cur;
}};
man.cpp
#include "stack.h"
#include "stdlib.h"
#include typedef node_node;
typedef stack_stack;
int getmin(int *num,int len)
} }return num[0];
}int _tmain(int argc, _tchar* argv)
; int a[10]=;
for (int i=0;i<10;i++)
//use pop check min
int _min = getmin(a,10);
//printf("\ndest min=%d\n",_min);
_node * p = mystack.min(_min);
if (p != null)
assert(_min == p->data);
getchar();
return 0;
}
cpp通過 氣泡排序檢查最小值 和 stack.getmin 比較。 面試題 包含min函式的棧
定義棧的資料結構,請在該型別中實現乙個能夠得到棧的最小元素的min函式。在該棧中,呼叫min push及pop的時間複雜度都是o 1 思路 push 和pop肯定都是符合要求的,那麼min該怎麼辦呢?常數時間,那麼就必須空間換時間了。那麼就來乙個輔助棧吧,如果棧元素也有序號的話,那麼就是說在主棧的序...
程式設計師面試題精選 02 設計包含min函式的棧
程式設計師面試題精選 02 設計包含min函式的棧 題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 分析 這是去年google的一道面試題。我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。...
程式設計師面試題精選 01 設計包含min函式的棧
題目 定義棧的資料結構,要求新增乙個min函式,能夠得到棧的最小元素。要求函式min push以及pop的時間複雜度都是o 1 分析 這是去年google的一道面試題。我看到這道題目時,第一反應就是每次push乙個新元素時,將棧裡所有逆序元素排序。這樣棧頂元素將是最小元素。但由於不能保證最後push...