public StckInternal <T> Reverse() { var s = new StckInternal <T>(); foreach (var item in this) { s = s.Push(item); } return(s); }
/// <summary> /// Ctor that takes an initial state as a Lst T /// </summary> internal StckInternal(Lst <T> initial) { tail = new StckInternal <T>(); foreach (var item in initial) { value = item; tail = tail.Push(item); Count++; } tail = tail.Pop(); }
/// <summary> /// Ctor that takes an initial state as an IEnumerable T /// </summary> public StckInternal(IEnumerable <T> initial) { tail = new StckInternal <T>(); foreach (var item in initial) { value = item; tail = tail.Push(item); Count++; } tail = tail.Pop(); }
internal QueInternal(IEnumerable <T> items) { var q = new QueInternal <T>(); foreach (var item in items) { q = q.Enqueue(item); } forward = q.forward; backward = q.backward; backwardRev = q.backwardRev; }
/// <summary> /// Ctor that takes an initial state as an IEnumerable T /// </summary> public Stck(IEnumerable <T> initial) { value = new StckInternal <T>(initial); this.hashCode = 0; }
/// <summary> /// Default ctor /// </summary> internal Stck(StckInternal <T> value) { this.value = value; this.hashCode = 0; }
private QueInternal(StckInternal <T> f, StckInternal <T> b) { forward = f; backward = b; }
internal QueInternal() { forward = StckInternal <T> .Empty; backward = StckInternal <T> .Empty; }
/// <summary> /// Ctor for Push /// </summary> /// <param name="value"></param> /// <param name="tail"></param> internal StckInternal(T value, StckInternal <T> tail) { Count = tail.Count + 1; this.tail = tail; this.value = value; }
/// <summary> /// Ctor that takes an initial state as an IEnumerable T /// </summary> public Stck(IEnumerable <A> initial) { value = initial.Any() ? new StckInternal <A>(initial) : StckInternal <A> .Empty; this.hashCode = 0; }
/// <summary> /// Default ctor /// </summary> internal Stck(StckInternal <A> value) { this.value = value; }