Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace TodoApplication
- {
- public class LimitedSizeStack<T>
- {
- private T[] array;
- private int limit;
- private int headPointer;
- private int tailPointer;
- public LimitedSizeStack(int limit)
- {
- this.limit = limit;
- array = new T[limit];
- headPointer = 0;
- tailPointer = 0;
- }
- public void Push(T item)
- {
- if (headPointer - tailPointer >= limit) {
- tailPointer++;
- }
- array[headPointer++ % limit] = item;
- }
- public T Pop()
- {
- if (headPointer == tailPointer)
- return default(T);
- return array[--headPointer % limit];
- }
- public int Count
- {
- get
- {
- return headPointer - tailPointer;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement