summaryrefslogtreecommitdiff
path: root/circular_queue.py
blob: 44954bdb9a6d158631e175e719f5a2a202d9c419 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class circular_queue:
    def __init__(self, size):
        self.size = size
        self.queue = []
        for i in range(self.size):
            self.queue.append(None)
        self.pointer = 0

    def add(self, value):
        self.queue[self.pointer] = value
        self.pointer += 1
        if self.pointer >= self.size:
            self.pointer = 0

    def average(self):
        queue = self.queue
        while None in queue:
            queue.remove(None)
        if len(queue) == 0:
            return 0
        return sum(queue) / len(queue)