private static void TestGrapBFSTravesal()
        {
            //     0
            //    /  \
            //   1    2
            //        /
            //       3
            UndirectedGraph<int> graph = new UndirectedGraph<int>();

            AdjacentListNode<int> node = new AdjacentListNode<int>(0);

            AdjacentListNode<int> node1 = new AdjacentListNode<int>(1);

            AdjacentListNode<int> node2 = new AdjacentListNode<int>(2);

            AdjacentListNode<int> node3 = new AdjacentListNode<int>(3);

            // Disconnected node
            AdjacentListNode<int> node4 = new AdjacentListNode<int>(4);

            // Add immediated neighbors of Node 1
            node.Neighbors.Add(node1);
            node.Neighbors.Add(node2);

            node1.Neighbors.Add(node);

            // Add immediate neighbors of node 2
            node2.Neighbors.Add(node3);
            node2.Neighbors.Add(node);

            node3.Neighbors.Add(node2);

            List<AdjacentListNode<int>> allNodes = new List<AdjacentListNode<int>>()
            {
            node,
            node1,
            node3,
            node2,
            node4
            };

            // Traverse all nodes and its vertices
            Console.WriteLine("/*********** BFS Traversal *************/");
            graph.BFSAdjacentList(allNodes);
        }