/data/stack.d

http://github.com/wilkie/djehuty · D · 35 lines · 26 code · 9 blank · 0 comment · 0 complexity · 7601e7b1d93b0db5d6cda5af2da3721f MD5 · raw file

  1. module data.stack;
  2. import data.list;
  3. import io.console;
  4. class Stack(T) : List!(T) {
  5. this() {
  6. super();
  7. }
  8. this(uint size) {
  9. super(size);
  10. }
  11. this(T[] withList) {
  12. _data = withList.dup;
  13. _count = _data.length;
  14. }
  15. Stack!(T) dup() {
  16. return new Stack!(T)(_data[0.._count]);
  17. }
  18. T pop() {
  19. T ret;
  20. ret = remove();
  21. return ret;
  22. }
  23. void push(T item) {
  24. add(item);
  25. }
  26. }