请设计包含min函数的栈,定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素
2015-05-19 18:03
453 查看
请设计包含min函数的栈。
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
存储方式采用顺序栈,栈的节点包括数据data,当前栈中的最小值min
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
存储方式采用顺序栈,栈的节点包括数据data,当前栈中的最小值min
#define STACK_INIT_SIZE 100 #define STACKIN 10 //栈节点 typedef struct Element{ int data; int min; }Element; //顺序栈 typedef struct Stack{ Element *base; Element *top; int stacksize; }Stack; Stack StackInit(){ //构造一个空栈 Stack s; s.base=(Element*)malloc(STACK_INIT_SIZE*sizeof(Element)); if(!s.base) exit(OVERFLOW); s.top=s.base; s.stacksize=STACK_INIT_SIZE; return s; } void Push(Stack &s,int e){ //入栈 if((s.top-s.base)>=s.stacksize){ s.base=(Element*)realloc(s.base,(s.stacksize+STACKIN)*sizeof(Element)); if(!s.base) exit(OVERFLOW); s.top=s.base+s.stacksize; s.stacksize+=STACKIN; } if(s.base==s.top){ s.top->data=e; s.top->min=e; s.top++; } if(e<(s.top-1)->min){ s.top->data=e; s.top->min=e; s.top++; } else{ s.top->data=e; s.top->min=(s.top-1)->min; s.top++; } } int Pop(Stack &s,int &e){ //出栈 if(s.base==s.top) return ERROR; e=(--s.top)->data; return OK; } int min(Stack s){//求当前栈中的最小值 if(s.base==s.top) return ERROR; int min1; min1=(s.top-1)->min; return min1; }
相关文章推荐
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。o(1)空间的代码实现
- 面试题:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素,要求函数min,push及pop的时间复杂度都是O(1)
- 2定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素
- 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- java 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- java实现定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。时间复杂度都是O(1)
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素
- 17.定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer-定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer——定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数