首页 > 代码库 > 用Array 实现stack
用Array 实现stack
用Array来实现Stack,语言c#。
欢迎大家批评指正。
关键点:
- 当数组满的时候,把数组长度延长2倍
- 当非空元素等于数组长度的1/4的时候,把数组长度减半。
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; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。