日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

含有min()函数的栈,各种操作时间复杂度为O(1)

發布時間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 含有min()函数的栈,各种操作时间复杂度为O(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

設計一個棧,定義棧的數據結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間復雜度都是O(1)。

聲明:思想非原創

#include <iostream> using namespace std; class Stack { private: int *stack;//保存數據 int minNum;//保存棧中最小數 int top;//棧頂指針 int size;//棧大小 public: Stack(int); ~Stack(void); int min(); void push(int); int pop(); }; Stack::Stack(int size) { this->size=size; stack=new int[size]; top=-1; minNum=0; } void Stack::push(int num) { if(top==-1) minNum=num; else minNum=minNum>num?num:minNum; if(top==size-1) stack[top]=num; else stack[++top]=num; } int Stack::pop() { if(top==-1) return 0; return stack[top]; } int Stack::min() { return minNum; } Stack::~Stack() { if(size==0) return; delete stack; cout<<"析構函數得到調用"<<endl; } void main() { Stack stack(10); for(int i=0;i<10;i++) stack.push(10-i); cout<<"棧中最小數為:"<<stack.min()<<endl; cout<<"棧中頂部數為:"<<stack.pop()<<endl; cin.get(); }?

轉載于:https://www.cnblogs.com/whuqin/archive/2010/11/12/4982116.html

總結

以上是生活随笔為你收集整理的含有min()函数的栈,各种操作时间复杂度为O(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。