-
Notifications
You must be signed in to change notification settings - Fork 0
/
Queue.cs
67 lines (52 loc) · 1.76 KB
/
Queue.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using HelloWorld;
namespace HelloWorld{
public class Queue : IQueue
{
private IEntry _firstInLine = null;
private IEntry _backOfLine = null;
/* Function: add(String itemToPush)
* Parameters: String itemToPush -> a string to add to the queue.
*
* Description:
* The add function will create a new Entry with the parameter given. If there is no
* first item in the queue, it will then set both the back and front to the queue.
*/
public void Push(Object itemToPush)
{
if (_firstInLine == null)
{
var firstEntry = HelloWorld.Factory.CreateEntry(itemToPush);
_firstInLine = firstEntry;
_backOfLine = firstEntry;
}
else
{
var entry = Factory.CreateEntry(itemToPush, _backOfLine);
_backOfLine = entry;
}
}
/* Function: pop()
* Parameters: NONE
*
* Description:
* The pop function will take the data from the _firstInLine Entry item, and then return the results.
* If the current _firstInLine item is null, then the function will write to the console with an err message.
*/
public Object Pop()
{
Object result;
if (_firstInLine == null)
{
Console.WriteLine("There are no items in the queue. Please use the 'push' function to queue a new item");
result = null;
}
else
{
result = _firstInLine.GetData();
_firstInLine = _firstInLine.GetNext();
}
return result;
}
}
}