示例#1
0
        public int Pop()
        {
            if (IsEmpty)
            {
                throw new KeyNotFoundException("Heap is empty");
            }

            int value;

            if (ListA.Count > 0 && ListB.Count > 0)
            {
                if (ListA[0] <= ListB[0])
                {
                    value = ListA[0];
                    ListA.RemoveAt(0);
                }
                else
                {
                    value = ListB[0];
                    ListB.RemoveAt(0);
                }
            }
            else if (ListA.Count > 0)
            {
                value = ListA[0];
                ListA.RemoveAt(0);
            }
            else
            {
                value = ListB[0];
                ListB.RemoveAt(0);
            }

            return(value);
        }
示例#2
0
 public void UsingLinqForeach()
 {
     ListA.ForEach(itemA =>
     {
         ListB.ForEach(itemB =>
         {
             if (itemA.P1 == itemB.P1)
             {
                 itemA.P2 = itemB.P2;
             }
         });
     });
 }
示例#3
0
        public Program()
        {
            _sendedList = new ListA("sendedList.txt");
            _sendedList.Clear();
            _list.Add("darkGhost");
            //for (int i = 0; i < 5; i++)
            //    new Client().StartSpammAsync();
            //for (int i = 0; i < 2; i++)
            //{
            //    new Client().StartPopulateAsync();
            //}
            new Client().StartSpamm();

            "end".Trace();
        }
示例#4
0
        public Program()
        {
            _sendedList = new ListA("sendedList.txt");
            _sendedList.Clear();
            _list.Add("darkGhost");
            //for (int i = 0; i < 5; i++)
            //    new Client().StartSpammAsync();
            //for (int i = 0; i < 2; i++)
            //{
            //    new Client().StartPopulateAsync();
            //}
            new Client().StartSpamm();

            "end".Trace();            
        }
示例#5
0
    private static void Main(string[] args)
    {
        IMyList a = new ListA {
            new ClassA {
                ClassAFoo = "I'm an A"
            }
        };
        IMyList b = new ListB {
            new ClassB {
                ClassBFoo = "I'm a B"
            }
        };

        a.CommonOperation();
        b.CommonOperation();
    }
示例#6
0
        public Program()
        {
            _sendedList = new ListA("postedlist.txt");
            for (int i = 0; i < 5; i++)
                new Client().StartSpammAsync();

            for (int i = 0; i < 1; i++)
                new Client().StartPopulateAsync();

            while (true)
            {
                Thread.Sleep(5000);
                _sendedList.Flush();
                Trace.WriteLine("flushed");
            }
        }
示例#7
0
        /// <summary>
        /// performs exactly one iteration of the algorithm
        /// </summary>
        public override void DoOneRun()
        {
            if (Finished)
            {
                throw new GSTException("algorithm is finished");
            }

            var watch = Stopwatch.StartNew();

            var listMatches = new List <Tile <T> >();

            LastMaximumMatch = MinimumMatchLength;

            // for every token in A that is unmarked
            foreach (var tA in ListA.Where(t => !t.Marked))
            {
                var tokA = tA; // CLOSURE
                int indA = ListA.IndexOf(tokA);

                // for every token in B that is unmarked and matches tokA
                foreach (var tB in ListB.Where(t => !t.Marked).Where(tokA.EqualsTokenValue))
                {
                    //counter++;
                    var tokB = tB; // CLOSURE
                    int indB = ListB.IndexOf(tokB);

                    int matchLength = CalculateMatchLength(indA, indB);

                    if (matchLength >= LastMaximumMatch)
                    {
                        var tile = AbstractGSTAlgorithm.CreateTile(ListA, indA, indB, matchLength);
                        AddTileToMatchList(listMatches, matchLength, tile);
                    }
                } // foreach in B
            }     // foreach in A

            foreach (var tile in listMatches)
            {
                MarkTileAsMatched(tile);
                ListTiles.Add(tile);
            }

            TilesMatchedInLastRun = listMatches;
            //Console.WriteLine("one run({1}) took {0} ms", watch.ElapsedMilliseconds, counter);
        }
示例#8
0
        public Program()
        {
            _sendedList = new ListA("postedlist.txt");
            for (int i = 0; i < 5; i++)
            {
                new Client().StartSpammAsync();
            }

            for (int i = 0; i < 1; i++)
            {
                new Client().StartPopulateAsync();
            }

            while (true)
            {
                Thread.Sleep(5000);
                _sendedList.Flush();
                Trace.WriteLine("flushed");
            }
        }
示例#9
0
        /// <summary>
        /// compares two lists of HashingEntity objects
        /// </summary>
        /// <param name="listA"></param>
        /// <param name="listB"></param>
        private void CompareLists(IList <HashingEntity> listA, IList <HashingEntity> listB)
        {
            foreach (var entityA in listA)
            {
                var indA = ListA.IndexOf(entityA.Tokens[0]);
                //Console.WriteLine("indexA: " + indA);
                foreach (var entityB in listB)
                {
                    var indB = ListB.IndexOf(entityB.Tokens[0]);

                    int matchLength = CalculateMatchLength(indA, indB);
                    //Console.WriteLine("indexB: {0}, ML: {1}", indB, matchLength);
                    if (matchLength >= LastMaximumMatch)
                    {
                        var tile = AbstractGSTAlgorithm.CreateTile(ListA, indA, indB, matchLength);
                        AddTileToMatchList(MatchesList, matchLength, tile);
                    }
                } // foreach in B
            }     // foreach in A
        }
示例#10
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="dirA"></param>
        /// <param name="dirB"></param>
        public DirComparison(string dirA, string dirB)
        {
            this.DirA = dirA;
            this.DirB = dirB;
            ListA     = DirComparison.Parse(dirA);
            ListB     = DirComparison.Parse(dirB);

            DiffersInA = new List <DirItem>();
            foreach (DirItem item in ListA)
            {
                if (!ListB.Contains(item))
                {
                    DiffersInA.Add(item);
                }
            }
            DiffersInB = new List <DirItem>();
            foreach (DirItem item in ListB)
            {
                if (!ListA.Contains(item))
                {
                    DiffersInB.Add(item);
                }
            }
        }