예제 #1
0
        public void Insert(PointFr p, EventPoint ep) // Wstawia zdarzenie ep w punkcie p do bieżącej kolejki zdarzeń zdarzenia Right są dodawane na początku, pozostałe na końcu
        {
            var existing = new C5.LinkedList <EventPoint>();

            if (_events.Exists(kvp => kvp.Key.Equals(p)))
            {
                existing = _events[p];
                _events.Remove(p);
            }

            if (ep.Type == EventPointType.Right) // Zdarzenia 'Right' powinny byc na początku listy
            {
                existing.Insert(0, ep);
            }
            else
            {
                existing.Add(ep);
            }
            _events.Add(p, existing);
        }
예제 #2
0
파일: HeapTests.cs 프로젝트: koltsov-ps/C5
        public void AddAll()
        {
            int length = 1000;
            int[] a = new int[length];
            Random ran = new Random(6754);

	        C5.LinkedList<int> lst = new C5.LinkedList<int>();
            for (int i = 0; i < length; i++)
                lst.Add(a[i] = ran.Next());

            queue.AddAll(lst);
            Assert.IsTrue(queue.Check());
            Array.Sort(a);
            for (int i = 0; i < length / 2; i++)
            {
                Assert.AreEqual(a[length - i - 1], queue.DeleteMax());
                Assert.IsTrue(queue.Check());
                Assert.AreEqual(a[i], queue.DeleteMin());
                Assert.IsTrue(queue.Check());
            }

            Assert.IsTrue(queue.IsEmpty);
        }