public GenChain <T> GetElt(int subscript) { GenChain <T> elt = First; for (int i = 0; i < subscript; i++) { if (elt == null) { return(null); } elt = elt.Next; } return(elt); }
public void AddElt(T element) { if (First == null) { First = new GenChain <T> { Value = element }; } else { GenChain <T> last = Last; last.Next = new GenChain <T> { Value = element, Previous = last }; } }
public void Insert(T elt, int subscript) { if (subscript == 0) { if (First == null) { First = new GenChain <T> { Value = elt }; } else { GenChain <T> temp = First; First = new GenChain <T> { Value = elt, Next = temp }; temp.Previous = First; } } else { GenChain <T> temp = GetElt(subscript); if (temp == null) { AddElt(elt); } else { GenChain <T> previous = temp.Previous; GenChain <T> previousNext = previous.Next; previous.Next = new GenChain <T> { Value = elt, Next = previousNext, Previous = previous }; temp.Previous = previous.Next; } } }