Exemple #1
0
        public static void Main(string[] args)
        {
            int         M  = 5;
            MinPQ <int> pq = new MinPQ <int>(M + 1);

            //StreamReader fs = new StreamReader("tinyW.txt");
            //StreamReader fs = new StreamReader("tinyT.txt");
            //StreamReader fs = new StreamReader("largeW.txt");
            StreamReader fs = new StreamReader("largeT.txt");
            string       line;

            while (!fs.EndOfStream)
            {
                line = fs.ReadLine();
                pq.insert(int.Parse(line));

                // eliminam valoarea minima din coada cu prioritate daca sunt M+1 elemente in coada
                if (pq.size() > M)
                {
                    pq.delMin();
                }
            } // cele mai mari M elemente sunt in coada



            // afisam elementele din coada cu prioritate in ordine inversa
            Stack <int> stack = new Stack <int>();

            foreach (var item in pq)
            {
                stack.push(item);
            }

            foreach (var item in stack)
            {
                Console.WriteLine(item);
            }
        }