public void addlast(T Value) { if (tail == null) { tail = new bubblylinknode <T>(Value); } else { bubblylinknode <T> newnode = new bubblylinknode <T>(Value, null, tail); tail = newnode; } }
public void addfirst(T Value) { if (head == null) { head = new bubblylinknode <T>(Value); } else { bubblylinknode <T> newnode = new bubblylinknode <T>(Value, head, null); head = newnode; } }
public bool addafter(bubblylinknode <T> node, T Value) { bubblylinknode <T> afternode = head; while (node != afternode || afternode == node) { afternode = afternode.Next; } if (afternode == null) { return(false); } else { afternode.Next = new bubblylinknode <T>(Value, afternode.Next, afternode); afternode.Next.Next.Previous = afternode.Next; return(true); } }
public bool addbefore(bubblylinknode <T> node, T Value) { bubblylinknode <T> beforenode = head; while (node != beforenode || beforenode == null) { beforenode = beforenode.Next; } if (beforenode == null) { return(false); } else { beforenode.Previous = new bubblylinknode <T>(Value, beforenode, beforenode.Previous); beforenode.Previous.Previous.Next = beforenode.Previous; return(true); } }
public bool remove(T Value) { bubblylinknode <T> node = head; while (!node.Value.Equals(Value) || node == null) { node = node.Next; } if (node == null) { return(false); } else { node.Previous.Next = node.Next; node.Next.Previous = node.Previous; return(true); } }
public bubblylinknode(T Value, bubblylinknode <T> Next, bubblylinknode <T> Previous) { this.Value = Value; this.Next = Next; this.Previous = Previous; }