1. 程式人生 > >實現具有getMin功能的棧

實現具有getMin功能的棧

data n) div class stdlib.h lib init stack main

#include "stack.h"
#include <stdlib.h>
#include <stdio.h>

Stack SMin, SData;

int PUSH(int *_d)
{
    int temp = 0;

    PushStack(&SData, _d);
    if(EmptyStack(&SMin) == 0)
        PushStack(&SMin, _d);
    else
    {
        GetTopStack(&SMin, &temp);
        if(*_d < temp)
            PushStack(
&SMin, _d); } } int POP(int *_d) { int temp = 0; PopStack(&SData, _d); GetTopStack(&SMin, &temp); if(*_d == temp) PopStack(&SMin, &temp); } int getMin(int *_d) { GetTopStack(&SMin, _d); } int main(void) { int i=10, j=20, k=30, temp=0; InitStack(
&SData); InitStack(&SMin); PUSH(&i); PUSH(&j); PUSH(&k); getMin(&temp); printf("%d \n", temp); exit(0); }

實現具有getMin功能的棧