首页 > 其他 > 详细

用Array 实现stack

时间:2014-05-07 10:40:14      阅读:391      评论:0      收藏:0      [点我收藏+]

用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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!