示例#1
0
        public Run PopRun(){
            Run result = new Run();
 
            using(reader = new StreamReader(Path)) 
                result.Enqueue(Int32.Parse(reader.ReadLine()));
            //using(writer = new StreamWriter(Path))
            //    reader.read
            Count--;
            
            return result;
        }
示例#2
0
        public Run PopRun()
        {
            Run result = new Run();

            using (reader = new StreamReader(Path))
                result.Enqueue(Int32.Parse(reader.ReadLine()));
            //using(writer = new StreamWriter(Path))
            //    reader.read
            Count--;

            return(result);
        }
示例#3
0
        private static Queue <Run> GetRuns(string Path_To_File)
        {
            Queue <Run> ResultedRuns = new Queue <Run>();
            Run         CurrentRun   = new Run();

            using (StreamReader rdr = new StreamReader(@"Unsorted files\" + Path_To_File)){
                SortedSet <int> SortedHeap = new SortedSet <int>();
                SortedHeap.Reverse();
                List <int> ReserveList = new List <int>();

                for (int i = 0; i < 4; i++)
                {
                    SortedHeap.Add(Int32.Parse(rdr.ReadLine()));
                }

                do
                {
                    while (SortedHeap.Count != 0)
                    {
                        int pretendent = SortedHeap.First();
                        SortedHeap.Remove(SortedHeap.First());

                        CurrentRun.Enqueue(pretendent);
                        if (!rdr.EndOfStream)
                        {
                            int Next = Int32.Parse(rdr.ReadLine());

                            if (Next >= pretendent)
                            {
                                SortedHeap.Add(Next);
                            }
                            else
                            {
                                ReserveList.Add(Next);
                            }
                        }
                    }
                    SortedHeap  = new SortedSet <int>(ReserveList);
                    ReserveList = new List <int>();
                    ResultedRuns.Enqueue(CurrentRun);
                    CurrentRun = new Run();
                } while (SortedHeap.Count != 0);
            }
            return(ResultedRuns);
        }
示例#4
0
        private static Queue<Run> GetRuns(string Path_To_File)
        {
            Queue<Run> ResultedRuns = new Queue<Run>();
            Run CurrentRun = new Run();

            using (StreamReader rdr = new StreamReader(@"Unsorted files\" + Path_To_File)){
                SortedSet<int> SortedHeap = new SortedSet<int>();
                SortedHeap.Reverse();
                List<int> ReserveList = new List<int>();

                for (int i = 0; i < 4; i++)
                    SortedHeap.Add(Int32.Parse(rdr.ReadLine()));

                do{  
                    while (SortedHeap.Count != 0){
                        int pretendent = SortedHeap.First();
                        SortedHeap.Remove(SortedHeap.First());

                        CurrentRun.Enqueue(pretendent);
                        if (!rdr.EndOfStream){
                            int Next = Int32.Parse(rdr.ReadLine());

                            if (Next >= pretendent)
                                SortedHeap.Add(Next);
                            else
                                ReserveList.Add(Next);
                        }
                    }
                    SortedHeap = new SortedSet<int>(ReserveList);
                    ReserveList = new List<int>();
                    ResultedRuns.Enqueue(CurrentRun);
                    CurrentRun = new Run();
                } while (SortedHeap.Count != 0);
            }
            return ResultedRuns;
        }