internal void insertAtPosotion(int num, int position) { DoublyListNode newNode = new DoublyListNode(); newNode.read(num); DoublyListNode q = null; if (position == 1) { insertAtStart(num); return; } DoublyListNode temp = Head; int currentPositionValue = 1; while (currentPositionValue < position - 1) { temp = temp.right; currentPositionValue++; } if (temp.right == null) // last node { insertAtEnd(num); return; } q = temp.right; newNode.left = temp; temp.right = newNode; newNode.right = q; }
private DoublyListNode Insert(DoublyListNode root, int num) { if (root == null) { root = new DoublyListNode(); root.read(num); } else if (num <= root.data) { root.left = Insert(root.left, num); } else { root.right = Insert(root.right, num); } return(root); }
internal void insertAtStart(int num) { DoublyListNode newNode = new DoublyListNode(); newNode.read(num); if (Head == null) { Head = newNode; return; } DoublyListNode temp = Head; temp.left = newNode; newNode.right = temp; Head = newNode; }
internal void insertAtEnd(int num) { DoublyListNode newNode = new DoublyListNode(); newNode.read(num); if (Head == null) { Head = newNode; return; } DoublyListNode temp = Head; while (temp.right != null) { temp = temp.right; } temp.right = newNode; newNode.left = temp; }
public void create(int[] arr) { int arrLength = arr.Length; if (arrLength < 1) { Head = null; return; } int k = 0; Head = new DoublyListNode(); Head.read(arr[k]); DoublyListNode temp = Head; for (k = 1; k < arrLength; k++) { temp.right = new DoublyListNode(); temp.right.left = temp; temp.right.read(arr[k]); temp = temp.right; } }
internal void insertAtmiddle(int num) { DoublyListNode newNode = new DoublyListNode(); newNode.read(num); DoublyListNode p = Head; DoublyListNode q = Head; DoublyListNode ptr = null; if (Head == null) { Head = newNode; } while (q.right != null && q.right.right != null) { ptr = p; p = p.right; q = q.right.right; } if (q.right != null) { ptr = p.right; p.right = newNode; newNode.left = p; newNode.right = ptr; } else { ptr.right = newNode; newNode.left = ptr; newNode.right = p; } }