public void AddPos(int pos, int element) { if (root == null) { throw new InvalidOperationException("This method can't be used for an empty AList0"); } if (Size() <= pos) { throw new ArgumentOutOfRangeException("There is no element in the position {0}", pos.ToString()); } Node nodeNow = root; Node nodeToAddTo = root; int i = 0; while (i < pos) { i++; nodeNow = nodeNow.next; if (i == pos - 1) { nodeToAddTo = nodeNow; } } Node tmpNode = nodeNow; Node newNode = new Node(element, tmpNode); if (pos != 0) { nodeToAddTo.next = newNode; } else { root = newNode; } }
public int CalcSize(Node node, ref int size) { size++; if (node.Left != null) { CalcSize(node.Left, ref size); } if (node.Right != null) { CalcSize(node.Right, ref size); } return size; }
public void AddEnd(int a) { if (headNode == null) { headNode = new Node(); headNode.Value = a; tailNode = this.headNode; headNode.Next = null; } else { Node newNode = new Node(a, null); tailNode.Next = newNode; } Size++; }
public void AddPos(int a, int pos) { Size++; Node tempNode = headNode; int i = 1; while (pos != i) { tempNode = tempNode.Next; i++; } tempNode = new Node(a, tempNode, tempNode.Next); tempNode.Previous.Next = tempNode; tempNode.Next.Previous = tempNode; }
public void AddEnd(int element) { if (root == null) { SetUpRoot(); root.value = element; } else { Node nodeNow = root; Node newNode = new Node(element, null); while (nodeNow.next != null) { nodeNow = nodeNow.next; } nodeNow.next = newNode; } }
public void Add(int val) { if (rootNode == null) { rootNode = new Node(); } else { Node newNode = Search(rootNode, val); if (val < newNode.Value) { newNode.Left = new Node(val, null, null); } else if (val > newNode.Value) { newNode.Right = new Node(val, null, null); } } }
public void AddStart(int a) { headNode = new Node(a, null, headNode); if (headNode.Next != null) { headNode.Next.Previous = headNode; } if (headNode.Next == null) { tailNode = headNode; } if (headNode == null) { Size = 0; } else { Size++; } }
public void AddPos(int a, int pos) { if (headNode == null) { headNode = new Node(); headNode.Value = a; tailNode = headNode; headNode.Next = null; } else { Node tempNode = headNode; Node newNode = new Node(a, null); pos--; for (int i = 0; i < Size; i++) { if (pos > i ) { tempNode = tempNode.Next; } else if (pos - i == 0) { newNode.Next = tempNode.Next; tempNode.Next = newNode; tempNode = tempNode.Next; } else if (pos < i) { tempNode = tempNode.Next; } } } Size++; }
public void AddEnd(int element) { if (root == null) { root = new Node(element); root.rear = root; root.front = root; } else { Node newNode = new Node(element, root, root.rear); if (Size() == 1) { root.front = newNode; root.rear = newNode; newNode.rear = root; } else { root.rear.front = newNode; root.rear = newNode; } } }
public void AddEnd(int a) { tailNode = new Node(a, tailNode, null); tailNode.Previous.Next = tailNode; Size++; }
public void Init(int[] array) { if (array.Length > 0) { SetUpRoot(); root.value = array[0]; Node nodeNow = root; Node newNode; for (int i = 1; i < array.Length; i++) { newNode = new Node(array[i], null); nodeNow.next = newNode; nodeNow = newNode; } } }
public Node(int val, Node node) { value = val; next = node; }
public void DelEnd() { tailNode = tailNode.Previous; tailNode.Next = null; Size--; }
public int DelStart() { if (root == null) { throw new InvalidOperationException("This method can't be used for an empty AList0"); } int res = root.value; if (Size() == 1) { root = null; } else { root.front.rear = root.rear; root.rear.front = root.front; root = root.front; } return res; }
public Node(int val, Node nodeFront, Node nodeRear) { value = val; front = nodeFront; rear = nodeRear; }
public void DelEnd() { tailNode = tailNode.Previous; tailNode.Next = headNode; Size--; }
public int FindHeight(Node node, ref int count) { if (node == null) return 0; int heightLeft = FindHeight(node.Left, ref count); int heightRight = FindHeight(node.Right, ref count); if (heightLeft > heightRight) count = heightLeft + 1; else count = heightRight + 1; return count; }
public void Clear() { rootNode = new Node(); }
public void Clear() { headNode = null; tailNode = null; }
public void AddPos(int pos, int element) { if (root == null) { throw new InvalidOperationException("This method can't be used for an empty AList0"); } int size = Size(); if (size <= pos) { throw new ArgumentOutOfRangeException("There is no element in the position {0}", pos.ToString()); } if (pos == 0) { AddStart(element); } else { Node nodeNow = root; int i; if (pos <= (size - 1) / 2.0) { i = 0; while (i < pos) { i++; nodeNow = nodeNow.front; } } else { i = size; while (i > pos) { i--; nodeNow = nodeNow.rear; } } Node newNode = new Node(element, nodeNow, nodeNow.rear); nodeNow.rear.front = newNode; nodeNow.rear = newNode; } }
public int DelEnd() { if (root == null) { throw new InvalidOperationException("This method can't be used for an empty AList0"); } int res = root.value; if (Size() == 1) { root = null; } else { Node nodeNow = root; Node prevNow = root; while (nodeNow.next != null) { prevNow = nodeNow; nodeNow = nodeNow.next; } res = nodeNow.value; prevNow.next = null; } return res; }
public void AddStart(int element) { if (root == null) { root = new Node(element, root, root);///?????? root.front = root; root.rear = root; } else { Node newNode = new Node(element, root, root.rear); if (Size() > 1) { root.rear.front = newNode; root.rear = newNode; } else { root.rear = newNode; root.front = newNode; } root = newNode; } }
public int DelStart() { if (root == null) { throw new InvalidOperationException("This method can't be used for an empty AList0"); } int res = root.value; root = root.next; return res; }
public void DelStart() { headNode = headNode.Next; headNode.Previous = null; Size--; }
private void SetUpRoot() { root = new Node(); }
public void AddStart(int element) { if (root == null) { SetUpRoot(); root.value = element; } else { Node nodeNow = root; root = new Node(element, nodeNow); } }
public void Reverse() { Node tempNode = tailNode; Node tailRev = new Node(); while (tempNode != headNode) { tailRev = new Node(tempNode.Value, tailRev, null); if (tailRev.Previous == null) { tailRev.Previous.Next = tailRev; Console.Write(tailRev.Value + " "); } tempNode = tempNode.Previous; } headNode = tailRev; if (headNode.Next == null) { tailNode = headNode; } }
public Node(int val, Node left, Node right) { Value = val; Left = left; Right = right; }
public void Clear() { root = null; }
public Node(int value, Node previous, Node next) { Value = value; Previous = previous; Next = next; }