Смущен функцией size () в python - PullRequest
1 голос
/ 22 апреля 2020

Я иду через код, чтобы написать круговую очередь в python


class CircularQueue:

  # constructor for the class
  # taking input for the size of the Circular queue 
  # from user
  def __init__(self, maxSize):
    self.queue = list()
    # user input value for maxSize
    self.maxSize = maxSize
    self.head = 0
    self.tail = 0

  # add element to the queue
  def enqueue(self, data):
    # if queue is full
    if self.size() == (self.maxSize - 1):
      return("Queue is full!")
    else:
      # add element to the queue
      self.queue.append(data)
      # increment the tail pointer
      self.tail = (self.tail+1) % self.maxSize
      return True

, и часть, которая меня смущает, - это self.size () в методе "enqueue"

Я просмотрел python документы и не вижу функции size (), только ссылки на size () в numpy.

Обычно вы хотите вызвать len () для размер списка, но я знаю, что вы не можете сделать self.len ()

какая-либо ясность / объяснение синтаксиса и логики c, стоящие за написанием чего-то подобного, было бы полезно!

1 Ответ

1 голос
/ 22 апреля 2020

Вам нужно определить свой собственный метод size () и просто вернуть количество элементов, которые в данный момент находятся в очереди.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...