实现一个特殊的栈,在实现栈的基础上,在实现返回栈中最小元素的操作。
int if_push_stack(lstack * datastack,lstack *minstack,datatype data)
{
datastack=push_stack(datastack,data);
if(!datastack)
return -1;
if(minstack==NULL)
{
minstack=push_stack(minstack,data);
}
else if(minstack->top->data>=data)
{
minstack=push_stack(minstack,data);
}
else
printf("****\n");
return 0;
}
int if_pop_stack(lstack * datastack,lstack *minstack)
{
if(datastack->top==NULL||minstack->top==NULL)
return -1;
if(minstack->top->data==datastack->top->data)
pop_stack(minstack);
if(minstack->top->data<datastack->top->data)
printf("no pop\n");
datastack=pop_stack(datastack);
return 0;
}
datatype get_mindata (lstack * ls)
{
if(ls->top==NULL)
return -1;
return ls->top->data;
}