码迷,mamicode.com
首页 > 其他好文 > 详细

用Array 实现stack

时间:2014-05-07 10:39:49      阅读:461      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

用Array来实现Stack,语言c#。

欢迎大家批评指正。

 

关键点:

  1. 当数组满的时候,把数组长度延长2倍
  2. 当非空元素等于数组长度的1/4的时候,把数组长度减半。
bubuko.com,布布扣
public class Stack<T>
    {
        T[] a = new T[1];
        int size = 0;

        public bool IsEmpty()
        {
            return size == 0;
        }

        public void Push(T data)
        {
            if (size == a.Length)
            {
                resize(a.Length * 2);
            }

            a[size++] = data;
        }

        public T Pop()
        {
            if (size == 0)
            {
                throw new Exception("The stack is Empty");
            }

            T result = a[--size];
            a[size] = default(T);
            if (size == a.Length / 4)
            {
                resize(a.Length / 2);
            }

            return result;
        }

        private void resize(int newLength)
        {
            T[] b = new T[newLength];
            for (int i = 0; i < size; i++)
            {
                b[i] = a[i];
            }

            a = b;
        }
}
bubuko.com,布布扣

 

用Array 实现stack,布布扣,bubuko.com

用Array 实现stack

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/jeffrey517/p/3712978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!