微软面试题2、设计包含min函数的栈

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。

思路:

其数据结构如下

Struct LinkNode{

  DataType data;

      Struct LinkNode * next;

      Struct LinkNode * pMin;

};

第一个节点入栈的时候若为空,p->next=NULL;p->pMin=p;

第二个节点入栈的时候,首先和栈顶元素pHead->pMin->data比较大小,若当前节点不大于它,则

p->pMin=p否则,p->pMin=pHead->pMin;

原文地址:https://www.cnblogs.com/GoAhead/p/2516530.html