Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Queue");
            Queue <Int32> myqueue = new Queue <int>();

            myqueue.Enqueue(2);
            myqueue.Enqueue(4);
            myqueue.Enqueue(6);
            myqueue.Enqueue(8);
            myqueue.Enqueue(10);
            myqueue.Enqueue(12);
            myqueue.Enqueue(14);
            myqueue.Enqueue(16);
            myqueue.Enqueue(18);
            myqueue.Enqueue(20);
            Console.WriteLine("elements in queue are:");
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("The left of elements in queue are:");
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            myqueue.Enqueue(2);
            myqueue.Enqueue(4);
            myqueue.Enqueue(6);
            myqueue.Enqueue(8);
            myqueue.Enqueue(10);
            myqueue.Enqueue(12);
            Console.WriteLine("inserting elements into queue");
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            myqueue.Enqueue(14);
            myqueue.Enqueue(16);
            myqueue.Enqueue(18);
            myqueue.Enqueue(20);
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            myqueue.Enqueue(2);
            myqueue.Enqueue(4);
            myqueue.Enqueue(6);
            myqueue.Enqueue(8);
            Console.WriteLine("inserting elements into queue");
            Console.WriteLine("After dequeue elements from queue" + myqueue.Dequeue());
            foreach (int queue in myqueue)
            {
                Console.WriteLine("elements are:" + queue);
            }
            Console.WriteLine("The peek element of the queue is:{0}", myqueue.Peek());
            Console.WriteLine("The no.of element in the queue is:{0}", myqueue.Count());
            Console.WriteLine("The element exist in the queue is:{0}", myqueue.Contains(20));
            Console.WriteLine("The element exist in the queue is:{0}", myqueue.Contains(12));
            Console.ReadKey();
        }
Beispiel #2
0
 /// <summary>
 /// tells how many patients are in queue
 /// </summary>
 /// <returns></returns>
 public int PeopleInQueue()
 {
     return(patientQueue.Count());
 }
        static void Main(string[] args)
        {
            Queue <int> x = new Queue <int>(); // queue object is created

            x.Enqueue(2);
            x.Enqueue(4);
            x.Enqueue(6);
            x.Enqueue(8);
            x.Enqueue(10);
            x.Enqueue(12);
            x.Enqueue(14);
            x.Enqueue(16);
            x.Enqueue(18);
            x.Enqueue(20);



            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }
            Console.WriteLine("pop elements of the queue is :" + x.Dequeue());
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }
            Console.WriteLine("pop elements of the queue is :" + x.Dequeue());
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }
            Console.WriteLine("pop elements of the queue is :" + x.Dequeue());
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }
            Console.WriteLine("pop elements of the queue is :" + x.Dequeue());
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }
            Console.WriteLine("pop elements of the queue is :" + x.Dequeue());
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }
            Console.WriteLine("pop elements of the queue is :" + x.Dequeue());
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
            }

            Console.WriteLine("peek elemnets of the queue :" + x.Peek());
            Console.WriteLine("elements left in queue are:");
            foreach (int z in x)
            {
                Console.WriteLine("Queue elements entered are: {0}", z);
                //Console.WriteLine("Queue elements entererd are:{ 0}", z);
            }
            Console.WriteLine("the current present elements:" + x.Count());
            Console.ReadKey();
        }
Beispiel #4
0
        private static int NumberIslands(char[][] grid)
        {
            int row = grid.Length;
            int col = grid[0].Length;

            if (row <= 0 || col <= 0)
            {
                return(0);
            }

            // 本地函数 用于搜索附近陆地
            void BFS(char[][] grid, Tuple <char, char> point, HashSet <Tuple <char, char> > visited, int row, int col)
            {
                Queue <Tuple <char, char> > queue = new Queue <Tuple <char, char> >();

                queue.Enqueue(point);

                while (queue.Count > 0)
                {
                    int curSize = queue.Count();
                    for (int i = 0; i < curSize; i++)
                    {
                        Tuple <char, char> curPoint = queue.Peek();
                        int curX = (int)curPoint.Item1;
                        int curY = (int)curPoint.Item2;

                        // 如果周围(水平,垂直)节点中有陆地 将其加入队列 继续搜索

                        // 上
                        if (curX - 1 >= 0)
                        {
                            var offsetPoint = new Tuple <char, char>((char)(curX - 1), (char)curY);
                            if (grid[curX - 1][curY] == '1' && !visited.Contains(offsetPoint))
                            {
                                queue.Enqueue(offsetPoint);
                                visited.Add(offsetPoint);
                            }
                        }
                        // 下
                        if (curX + 1 < row)
                        {
                            var offsetPoint = new Tuple <char, char>((char)(curX + 1), (char)curY);
                            if (grid[curX + 1][curY] == '1' && !visited.Contains(offsetPoint))
                            {
                                queue.Enqueue(offsetPoint);
                                visited.Add(offsetPoint);
                            }
                        }
                        // 左
                        if (curY - 1 >= 0)
                        {
                            var offsetPoint = new Tuple <char, char>((char)curX, (char)(curY - 1));
                            if (grid[curX][curY - 1] == '1' && !visited.Contains(offsetPoint))
                            {
                                queue.Enqueue(offsetPoint);
                                visited.Add(offsetPoint);
                            }
                        }
                        // 右
                        if (curY + 1 < col)
                        {
                            var offsetPoint = new Tuple <char, char>((char)curX, (char)(curY + 1));
                            if (grid[curX][curY + 1] == '1' && !visited.Contains(offsetPoint))
                            {
                                queue.Enqueue(offsetPoint);
                                visited.Add(offsetPoint);
                            }
                        }
                    }
                    queue.Dequeue();
                }
            }

            // 存储已访问过的节点
            HashSet <Tuple <char, char> > visited = new HashSet <Tuple <char, char> >();

            // 岛屿数量
            int count = 0;

            // 遍历所有节点
            for (int i = 0; i < row; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    Tuple <char, char> point = new Tuple <char, char>((char)i, (char)j);
                    // 如果当前节点为陆地且未访问过
                    if (grid[i][j] == '1' && !visited.Contains(point))
                    {
                        count++;
                        visited.Add(point);
                        // 广度优先算法 查找附近 陆地
                        BFS(grid, point, visited, row, col);
                    }
                }
            }

            return(count);
        }