-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueueFunctions.cs
More file actions
99 lines (94 loc) Β· 2.89 KB
/
queueFunctions.cs
File metadata and controls
99 lines (94 loc) Β· 2.89 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
public static Queue<int> sortQueue(Queue<int> queue)
{
Queue<int> sortedQueue = new Queue<int>();
while (!queue.IsEmpty())
{
int min = findMin(queue);
Queue<int> tempQueue = new Queue<int>();
while (!queue.IsEmpty())
{
int current = queue.Head();
queue.Remove();
if (current == min)
{
sortedQueue.Insert(current); }
else
{
tempQueue.Insert(current); }
}
queue = tempQueue;
}
return sortedQueue;
}
public static Queue<int> copyqueue(Queue<int> queue)
{
Queue<int> temp = new Queue<int>();
Queue<int> temp2 = new Queue<int>();
while (!queue.IsEmpty())
{
temp.Insert(queue.Head());
temp2.Insert(queue.Head());
queue.Remove();
}
while (!temp2.IsEmpty())
{
queue.Insert(temp2.Head());
temp2.Remove();
}
return temp;
}
public static int findMin(Queue<int> queue)
{
Queue<int> tempQueue = copyqueue(queue);
int min = int.MaxValue;
while (!tempQueue.IsEmpty())
{
int current = tempQueue.Head();
tempQueue.Remove();
if (current < min)
{
min = current;
}
}
return min;
}
public static int queuelength(Queue<int> q)
{ //queue length
int count = 0;
Queue<int> queuecopy = copyqueue(q);
while (!queuecopy.IsEmpty())
{
count++;
queuecopy.Remove();
}
return count;
}
public static int countinstance(Queue<int> q, int instance)
{
int count = 0;
Queue<int> copyq = copyqueue(q);
while (!copyq.IsEmpty())
{
if (copyq.Head() == instance) { count++; }
copyq.Remove();
}
return count;
}
public static Queue<int> delnumber(Queue<int> q, int number)
{ //delete any instance of number in queue
Queue<int> temp = new Queue<int>();
while (!q.IsEmpty())
{
if (q.Head() != number)
{
temp.Insert(q.Head());
}
q.Remove();
}
while (!temp.IsEmpty())
{
q.Insert(temp.Head());
temp.Remove();
}
return q;
}