summaryrefslogtreecommitdiff
path: root/circular_queue.py
blob: 26f61a2de518a08b08ad5d57601340ab7bf7b12a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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):
        value = 0
        length = 0
        for i in self.queue:
            if i != None:
                value += i
                length += 1
        if length == 0:
            return 0
        return value / length