public override T Remove(T value) { Assertion.Pre(value != null); SinglyLinkedListElement <T> finger = this.head; SinglyLinkedListElement <T> previous = null; while (finger != null && !value.Equals(finger.GetValue())) { previous = finger; finger = finger.GetNext(); } if (finger == null) { return(default(T)); } if (previous == null) { this.head = finger.GetNext(); } else { previous.SetNext(finger.GetNext()); } this.count--; return(finger.GetValue()); }
public override T RemoveFromTail() { Assertion.Pre(this.head != null); SinglyLinkedListElement <T> previous = null; SinglyLinkedListElement <T> finger = this.head; while (finger.GetNext() != null) { previous = finger; finger = finger.GetNext(); } if (previous == null) { this.head = null; } else { previous.SetNext(finger.GetNext()); } this.count--; return(finger.GetValue()); }
public override T RemoveFromTail() { Assertion.Pre(this.tail != null); SinglyLinkedListElement <T> finger = this.tail; SinglyLinkedListElement <T> oldTail = this.tail; while (finger.GetNext() != this.tail) { finger = finger.GetNext(); } if (finger == this.tail) { this.tail = null; } else { finger.SetNext(this.tail.GetNext()); this.tail = finger; } this.count--; return(oldTail.GetValue()); }
public override T RemoveFromHead() { Assertion.Pre(this.head != null); SinglyLinkedListElement <T> oldHead = this.head; this.head = this.head.GetNext(); this.count--; return(oldHead.GetValue()); }
public override T PeekTail() { Assertion.Pre(this.head != null); SinglyLinkedListElement <T> finger = this.head; while (finger.GetNext() != null) { finger = finger.GetNext(); } return(finger.GetValue()); }
public override bool Contains(T value) { Assertion.Pre(value != null); SinglyLinkedListElement <T> finger = this.head; while (finger != null && !value.Equals(finger.GetValue())) { finger = finger.GetNext(); } return(finger != null); }
public override T RemoveFromHead() { Assertion.Pre(this.tail != null); SinglyLinkedListElement <T> head = this.tail.GetNext(); if (this.tail == head) { this.tail = null; } else { this.tail.SetNext(head.GetNext()); } this.count--; return(head.GetValue()); }
public override bool Contains(T value) { Assertion.Pre(value != null); SinglyLinkedListElement <T> finger = this.tail; if (finger == null) { return(false); } do { if (value.Equals(finger.GetValue())) { return(true); } finger = finger.GetNext(); } while (finger != this.tail); return(false); }
public void TestSetGetValue() { Assert.AreEqual(1, (int)element.GetValue()); element.SetValue(2); Assert.AreEqual(2, (int)element.GetValue()); }