careercup3.2
来源:互联网 发布:数据库用接口d 编辑:程序博客网 时间:2024/06/06 05:08
基本操作。
/*How would you design a stack which, in addition to push and pop, also has a function min which returns the minimum element? Push, pop and min should all operate in O(1) time*/#include <iostream>using namespace std;class Node{public:int data; Node* next;Node(){this->next = 0;}Node(int a, Node* n=0):data(a),next(n){}};class Stack{Node* top;Node* minx;public:Stack():top(0),minx(0){}Stack(int ar[],int len){top = minx = 0;for(int i = 0; i<len; i++)push(ar[i]);}~Stack();Node* pop();void push(int);int findmin()const {return minx->data;};Node* findtop()const {return top;};void print()const{Node* p = top; while(p){ cout<<p->data<<" "; p = p->next; }}};Stack::~Stack(){while(top){ Node* p =pop(); delete p;}}Node* Stack::pop(){if(!top) return 0;Node* p = top;top = top->next;return p;}void Stack::push(int k){Node* p = top;top = new Node(k,p);if (!minx) minx = p; else if( minx->data > p->data)minx = p;}int main(){int ar[]={16,423,5,67,8,9,45,78,777,33,12,11,76,4,43,7};Stack ll(ar,16);cout<<ll.findmin()<<endl;}
- careercup3.2
- careercup3
- careercup3.3
- careercup3.4
- careercup3.5
- careercup3.6
- careercup3.5用两个栈实现一个队列
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- Android_Listview中使用线程实现无限加载更多项目的功能
- CentOS6.2上安装部署eucalyptus
- MongoDB参数说明
- ViewState EnableViewState 禁用与使用心得
- MongoDB权限管理
- careercup3.2
- Linux 平台相关代码的 C++ 解决方案
- java例程练习(统计字母数字等字符的个数)
- HASH_MAP
- OGRE编译
- java的subString方法
- Fedora桌面系统使用笔记 安装好Fedora后系统配置及相关软件的安装
- Java序列化
- 关于移位运算(书本理论 + 个人理解)