Untitled
Доработал класс стека так, чтобы он работал как нужно. Теперь он корректно проходит проверку вашим циклом.unknown
python
2 years ago
1.9 kB
8
Indexable
class Queue: def __init__(self, capacity): self.capacity = capacity self.queue = [None] * capacity self.head = 0 self.tail = 0 self.size = 0 def push(self, x): if self.size == self.capacity: raise ValueError("Queue is full") self.queue[self.tail] = x self.tail = self.tail + 1 self.size += 1 def pop(self): if self.size == 0: raise ValueError("Queue is empty") x = self.queue[self.head] for _ in range(self.head+1,self.size): self.queue[_-1]=self.queue[_] self.tail-=1 self.queue[self.tail]= None self.size -= 1 return x def clear(self): self.queue = [None] * self.capacity self.head = 0 self.tail = 0 self.size = 0 def empty(self): return self.size == 0 def Qsize(self): return self.size def front(self): if self.size == 0: raise ValueError("Queue is empty") return self.queue[self.head] def back(self): if self.size == 0: raise ValueError("Queue is empty") return self.queue[self.tail-1] #all_years = {} #for i in range(1,7): # all_years[i] = Queue(100) #with open('input.txt', 'r', encoding='utf-8') as inp: # for line in inp: # name, year = line.split() # all_years[int(year)].push(name) # #with open('output.txt', 'w', encoding='utf-8') as out: # for i in range(1, 7): # while not all_years[i].empty(): # student = all_years[i].pop() # out.write(f'{student} {i}\n') queue = Queue(100) for j in range(15): for i in range(10): queue.push(i) for _ in range(5): print(queue.pop()) print('Размер очереди:', queue.Qsize())
Editor is loading...