//原理:利用两个栈,一个记录最小值,一个记录数据。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace StackGetMinValues
{
public class Program
{
public void Main(string[] args)
{
MyStack myStack = new MyStack();
myStack.Push();
myStack.Push();
myStack.Push();
myStack.Push();
myStack.Push(-);
myStack.Push();
Console.WriteLine(myStack.GetMinValue()); myStack.Pop();
Console.WriteLine(myStack.GetMinValue()); myStack.Pop();
Console.WriteLine(myStack.GetMinValue()); Console.ReadLine(); } }
public class MyStack
{
public Stack<int> stackData;
public Stack<int> stackMin;
public MyStack()
{
stackData = new Stack<int>();
stackMin = new Stack<int>();
}
public void Push(int number)
{
if (number.GetType() != typeof(int)) throw new ArgumentException("必须输入数字"); if (stackData.Count() == )
{
stackData.Push(number);
stackMin.Push(number);
return;
} stackData.Push(number);
if (stackMin.Peek() > number)
{
stackMin.Push(number);
}
}
public int Pop()
{
if (stackData.Count() == ) throw new IndexOutOfRangeException("栈对象为空");
var value = stackData.Pop();
if (value == stackMin.Peek())
{
stackMin.Pop();
}
return value;
}
public int GetMinValue()
{
if (stackMin.Count() == ) throw new IndexOutOfRangeException("最小值栈对象为空"); return stackMin.Peek();
}
}
}

C# 栈=>随时读取栈中最小值的更多相关文章

  1. [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. C语言实现链栈的初始化&进栈&出栈&读取栈顶元素

    /*链表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typede ...

  3. C语言实现顺序栈的初始化&进栈&出栈&读取栈顶元素

    /*顺序表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define Stack_Size 50 //设栈中元素个数为50 ...

  4. 写一个栈,实现出栈、入栈、求最小值,时间复杂度为O(1)

    #-*-coding:utf-8-*- ''' 需求:写一个栈,实现出栈.入栈.求最小值,时间复杂度为O(1) 思路:通过两个栈实现,一个栈stack,一个辅助栈min_stack,记录stack中的 ...

  5. C++中栈的出栈,入栈规则:A,B,C,D,E

    考题: 栈底至栈顶一次存放元素 ABCD 在第五个元素E入栈之前  栈中元素可以出栈,则出栈序列可能是_____a d___________. a.  ABCED b.  DBCEA   c.  CD ...

  6. 栈 堆 stack heap 堆内存 栈内存 内存分配中的堆和栈 掌握堆内存的权柄就是返回的指针 栈是面向线程的而堆是面向进程的。 new/delete and malloc/ free 指针与内存模型

    小结: 1.栈内存 为什么快? Due to this nature, the process of storing and retrieving data from the stack is ver ...

  7. 《程序员代码面试指南》第一章 栈和队列 最大值减去最小值小于或等于num的数量

    题目 给定整数数组arr和整数num,共返回多少的数组满足如下情况 max(arr[i...j]) - min(arr[i...j]) <= num max(arr[i...j])表示数组arr ...

  8. Linux虚拟地址空间布局以及进程栈和线程栈总结【转】

    转自:http://www.cnblogs.com/xzzzh/p/6596982.html 原文链接:http://blog.csdn.net/freeelinux/article/details/ ...

  9. Linux虚拟地址空间布局以及进程栈和线程栈总结

    原文链接:http://blog.csdn.net/freeelinux/article/details/53782986[侵删] 本文转自多个博客,以及最后有我的总结.我没有单独从头到尾写一个总结的 ...

随机推荐

  1. vue.js(18)--父组件向子组件传值

    子组件是不能直接使用父组件中数据的,需要进行属性绑定(v-bind:自定义属性名=“msg”),绑定后需要在子组件中使用props[‘自定义属性名’]数组来定义父组件的自定义名称. props数组中的 ...

  2. postmaster - PostgreSQL多用户数据库服务器

    SYNOPSIS postmaster [ -A 0 | 1] [ -B nbuffers] [ -c name=value] [ -d debug-level] [ -D datadir] [ -F ...

  3. pg_restore - 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库。

    SYNOPSIS pg_restore [ option...] [ filename] DESCRIPTION 描述 pg_restore 是一种用于恢复由 pg_dump(1) 创建的任何非纯文本 ...

  4. TensorFlow——CNN卷积神经网络处理Mnist数据集

    CNN卷积神经网络处理Mnist数据集 CNN模型结构: 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5*5,步长为1,卷积核:32个 第一层池化:池化视野2*2,步长为2 第二层卷积 ...

  5. Linux性能优化从入门到实战:07 CPU篇:CPU性能优化方法

    性能优化方法论   动手优化性能之前,需要明确以下三个问题:   (1)如何评估性能优化的效果? 确定性能的量化指标.测试优化前的性能指标.测试优化后的性能指标.   量化指标的选择.至少要从应用程序 ...

  6. Informatica ODBC的使用

    1.在服务器端配置odbc.ini 注意:添加环境变量才能生效 2.测试连通性 3.使用

  7. python封装成exe

                                版权声明:本文为博主原创文章,未经博主允许不得转载.     https://blog.csdn.net/qq_32113189/article ...

  8. 超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述

    前言: 由于之前对STM32Fxx系列相对熟悉,所以涉及到超低功耗设备时,自然就选用STM32家族的STM32Lxx系列产品. STM32L151C8T6 功能特点: (1)Flash:64k (2) ...

  9. Web核心之JSP

    JSP JSP = HTML + Java + JSP自己的一些语法 JSP也是一个动态网页开发技术. JSP本质 Jsp实际上就是一个Servlet,在jsp被访问时,tomcat会把jsp转换为一 ...

  10. libopencv_imgcodecs3.so.3.3.1: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0

    ubundu 编译 C++工程时遇到的: 解决方案: https://blog.csdn.net/qq_29572513/article/details/88742652