zoukankan      html  css  js  c++  java
  • 堆栈实现C#

     用顺序结构(数组)与模板技术实现Stack如下:

    View Code
    class MyStack <T>
        {
            private const int MAXSTACK = 10;
            private int count;
            private T[] entry = new T[MAXSTACK];
    
            public MyStack() { count = 0; }
    
            public bool empty()
            {
                bool outcome = true;
                if (count > 0)
                    outcome = false;
                return outcome;
            }
    
            public ErrorCode pop()
            {
                ErrorCode outcome = ErrorCode.success;
                if (count > 0)
                    count--;
                else
                    outcome = ErrorCode.underflow;
                return outcome;
            }
    
            public ErrorCode top(ref T item)
            {
                ErrorCode outcome = ErrorCode.success;
                if (count > 0)
                    item = entry[count - 1];
                else
                    outcome = ErrorCode.underflow;
                return outcome;
            }
    
            public ErrorCode push(T item)
            {
                ErrorCode outcome = ErrorCode.success;
                if (count < MAXSTACK)
                    entry[count++] = item;
                else
                    outcome = ErrorCode.overflow;
                return outcome;
            }
        }

     注意:C#的引用传递可以有两种方式,它们分别用out、ref这两个关键词,区别是:ref 参数必须在使用前进行初始化,而 out 参数无需在传递前进行显式初始化,并且任何先前的值都会被忽略。

     资料:C#泛型编程之类模板特化及其与C++模板特化的区别, http://hi.baidu.com/qicosmos/item/1d94b5f7049e37c4a835a2fe

  • 相关阅读:
    括号匹配
    超级阶梯问题
    进制问题
    rwkj 1423
    next_permutation
    rwkj 1420
    uva-10392-因数分解
    uva-10305-水题-拓扑排序
    uva-10194-排序
    uva-10152-乌龟排序
  • 原文地址:https://www.cnblogs.com/zhoutk/p/2725461.html
Copyright © 2011-2022 走看看