public void main() { Console.WriteLine("Hello World!"); var node1 = new Node1(1); var node2 = new Node1(2); var node3 = new Node1(3); var node4 = new Node1(4); var node5 = new Node1(5); var node6 = new Node1(6); node1._left = node2; node1._right = node3; node2._left = node4; node2._right = null; node3._left = node5; node3._right = node6; node4._left = node4._right = null; node5._left = node5._right = null; node6._left = node6._right = null; var node = Connect(node1); }
public void InsertFront(SingleLinkedList singleLinked, int data) { Node1 new_Node = new Node1(data); new_Node.data = data; new_Node.next = singleLinked.head; singleLinked.head = new_Node; }
public Node1 GetLasNode(SingleLinkedList sList) { Node1 temp = sList.head; if (temp.next != null) { temp = temp.next; } return(temp); }
public void InsertNodeAt(Node1 PrevNode, int data) { Node1 new_Node = new Node1(data); if (PrevNode == null) { Console.WriteLine("New node cannot be null"); return; } new_Node.next = PrevNode.next; PrevNode.next = new_Node; }
public void InsertLast(SingleLinkedList singleLinkedList, int Data) { Node1 New_Node = new Node1(Data); New_Node.data = Data; if (singleLinkedList == null) { singleLinkedList.head = New_Node; return; } Node1 lastNode = GetLasNode(singleLinkedList); lastNode.next = New_Node; }
public void WallsAndGates(int[,] rooms) { if (rooms == null) { return; } int row = rooms.GetLength(0); int col = rooms.GetLength(1); Queue <Node1> q = new Queue <Node1>(); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { if (rooms[i, j] == 0) { q.Enqueue(new Node1(i, j, rooms[i, j])); } } } while (q.Count > 0) { Node1 n = q.Dequeue(); rooms[n.r, n.c] = n.distance; if (n.r > 0 && rooms[n.r - 1, n.c] == int.MaxValue) { q.Enqueue(new Node1(n.r - 1, n.c, n.distance + 1)); } if (n.r + 1 < row && rooms[n.r + 1, n.c] == int.MaxValue) { q.Enqueue(new Node1(n.r + 1, n.c, n.distance + 1)); } if (n.c > 0 && rooms[n.r, n.c - 1] == int.MaxValue) { q.Enqueue(new Node1(n.r, n.c - 1, n.distance + 1)); } if (n.c + 1 < col && rooms[n.r, n.c + 1] == int.MaxValue) { q.Enqueue(new Node1(n.r, n.c + 1, n.distance + 1)); } } }
private static Node1 Connect(Node1 root) { if (root == null) { return(root); } Node1 cur = root; while (cur != null) { Node1 nextNode = new Node1(0); Node1 pre = nextNode; while (cur != null) { if (cur._left != null) { pre._next = cur._left; pre = pre._next; } if (cur._right != null) { pre._next = cur._right; pre = pre._next; } cur = cur._next; } cur = nextNode._next; } return(root); }
public void DeleteByKey(SingleLinkedList singleLinkedList, int key) { Node1 temp = singleLinkedList.head; Node1 prev = null; if (temp != null && temp.data == key) { singleLinkedList.head = temp.next; return; } while (temp != null && temp.data != key) { prev = temp; temp = temp.next; } if (temp == null) { return; } prev.next = temp.next; }
public Node1(int d) { data = d; next = null; }