博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 155 最小栈 C语言
阅读量:4141 次
发布时间:2019-05-25

本文共 1475 字,大约阅读时间需要 4 分钟。

题目

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素。

示例:

MinStack minStack = new MinStack();

minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

代码

#include 
#include
#define MAXSIZE 1600typedef struct {
int *data; int top;} MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {
MinStack *obj=(MinStack *)malloc(sizeof(MinStack)); obj->data=(int *)malloc(MAXSIZE*sizeof(int)); obj->top=-1; return obj;}void minStackPush(MinStack* obj, int x) {
if(obj->top==MAXSIZE-1){
}else if(obj->top==-1){
obj->top++; obj->data[obj->top]=x; obj->top++; obj->data[obj->top]=x; }else{
int tmp=obj->data[obj->top]; obj->top++; obj->data[obj->top]=x; if(tmp
top++; obj->data[obj->top]=tmp; }else{
obj->top++; obj->data[obj->top]=x; } }}void minStackPop(MinStack* obj) {
if(obj->top==-1){
}else{
obj->top--; obj->top--; }}int minStackTop(MinStack* obj) {
if(obj->top==-1){
return; } return obj->data[obj->top-1];}int minStackGetMin(MinStack* obj) {
return obj->data[obj->top];}void minStackFree(MinStack* obj) {
free(obj->data); obj->data=NULL; free(obj); obj=NULL;}

转载地址:http://uzkti.baihongyu.com/

你可能感兴趣的文章
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
菜单树
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
JAVA数据类型
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>