public PriorityObject Dequeue(PriorityObject obj)
 {
     if (list.Contains(obj))
     {
         list.Remove(obj);
         return(obj);
     }
     return(null);
 }
        public void Enqueue(PriorityObject obj)
        {
            list.Sort((first, second) => first.priority.CompareTo(second.priority));

            for (int i = 0; i < Size(); i++)
            {
                if (list[i].priority > obj.priority)
                {
                    list.Insert(i, obj);
                    break;
                }
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            //create and populate the queue
            PriorityObject test = new PriorityObject {
                name = "test", priority = 4
            };
            PriorityQueue queue = new PriorityQueue();

            queue.list.Add(new PriorityObject {
                name = "chair", priority = 3
            });
            queue.list.Add(new PriorityObject {
                name = "dog", priority = 2
            });
            queue.list.Add(new PriorityObject {
                name = "cat", priority = 1
            });
            queue.list.Add(new PriorityObject {
                name = "spoon", priority = 5
            });
            queue.list.Add(new PriorityObject {
                name = "table", priority = 4
            });

            //insert the test object into the queue
            queue.Enqueue(test);

            foreach (PriorityObject n in queue.list)
            {
                Console.WriteLine(n.name + " " + n.priority);
            }

            //remove the test object from the queue
            queue.Dequeue(test);

            Console.WriteLine("The front is " + queue.Front().name + " " + queue.Front().priority);

            foreach (PriorityObject n in queue.list)
            {
                Console.WriteLine(n.name + " " + n.priority);
            }

            Console.ReadLine();
        }