微软面试100题之第2题
来源:互联网 发布:淘宝pc转换无线连接 编辑:程序博客网 时间:2024/06/05 05:56
设计包含 min函数的栈
定义栈的数据结构,要求添加一个 min函数,能够得到栈的最小元素。要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef struct StackElement{int data;int min;}StackElement;typedef struct Stack{StackElement data[MAXSIZE];int top;}Stack;void init(Stack &stack){stack.top = 0;}void push(Stack &stack,int value){if(stack.top < MAXSIZE){stack.data[stack.top].data = value;stack.data[stack.top].min = stack.top==0?value:stack.data[stack.top-1].min;if(stack.data[stack.top].min>value)stack.data[stack.top].min = value;stack.top++;}else{printf("error:the stack is full,value %d isn't pushed.\n",value);exit(EXIT_FAILURE);}}int pop(Stack &stack){if(stack.top > 0){return stack.data[--stack.top].data;}else{printf("error:the stack is empty.\n");exit(EXIT_FAILURE);}}int min(Stack stack){if(stack.top==0){printf("error:the stack is empty.\n");exit(EXIT_FAILURE);}return stack.data[stack.top-1].min;}main(){int i = 0;Stack stack;init(stack);for(i=256;i>200;i--)push(stack,i);printf("the min value is %d",min(stack));}
0 0
- 微软面试100题之第2题
- 微软面试100题之第2题
- 微软面试100题之第1题
- 微软面试100题之第3题
- 微软面试100题之第4题
- 微软面试100题之第5题
- 微软面试100题之第1题
- 微软面试100题之第4题
- 微软面试100题之第6题
- 微软面试100题之第7题
- 微软面试100系列 第32题
- 微软面试100题系列-第2题
- 微软面试100题之第五题
- 微软面试100题之 18
- 微软面试100题之第11题 求二叉树中节点的最大距离
- 微软面试100题
- 微软面试100题
- 微软面试100题
- 基于xmpp openfire smack开发之Android消息推送技术原理分析和实践
- 基于xmpp openfire smack开发之openfire介绍和部署
- c++ 模拟浮点数运算
- rabbitmq初学之连接测试
- 格力与小米:谁将会赢
- 微软面试100题之第2题
- 【SSH2(理论+实践)】--图说Struts2的运行
- 面试啊面试
- 在php中,session退出
- 【操作系统】请求分页储存管理方式
- PHP socket编程案例,参照视频教程
- ``Accordian'' Patience
- 动态IP或无公网IP时外网访问内网ORACLE数据库
- COAP学习笔记2--Option