public void TestEnqueue() { SQueue queue = new SQueue(new Node(0)); Node testNode = new Node(100); queue.Enqueue(testNode); Assert.Equal(testNode, queue.Peek().Next); }
public void TestDequeue() { Node testNode1 = new Node(100); Node testNode2 = new Node(999); SQueue queue = new SQueue(testNode1); queue.Enqueue(testNode2); Assert.True(queue.Dequeue() == testNode1 && queue.Peek() == testNode2); }
static void Main(string[] args) { SQueue queue = MakeQueue(5, 50, 5); Console.WriteLine("Initial queue"); ViewQueue(queue); queue.Enqueue(queue.Dequeue()); Console.WriteLine("\nQueue after moving the front to the rear"); ViewQueue(queue); Console.ReadKey(); }
/// <summary> /// Creates and populates a SQueue. /// </summary> /// <param name="start">The value of the first node in the SQueue.</param> /// <param name="end">The maximum value for the nodes generated.</param> /// <param name="step">The difference in the values of adjacent nodes.</param> /// <returns>The resulting SQueue.</returns> static SQueue MakeQueue(int start, int end, int step) { Node node = new Node(start); SQueue queue = new SQueue(node); for (int i = start + step; i <= end; i += step) { node = new Node(i); queue.Enqueue(node); } return(queue); }
private void SpreadReadyPackage(int codec, byte[] data) { qrpe.Enqueue(new RPE() { Codec = codec, Data = data }); lock (lock_threadIsStarted) { if (threadIsStarted) { return; } threadIsStarted = true; } Action spreadAction = () => { RPE rpe = null; while (true) { lock (lock_threadIsStarted) { rpe = qrpe.Dequeue(); if (rpe == null) { threadIsStarted = false; return; } } this.packetParser(rpe.Codec, rpe.Data); } }; Task.Run(spreadAction); }