Что вызывает ошибку имени в моем Python-файле очереди связанного списка? - PullRequest
0 голосов
/ 10 декабря 2018

Я следую учебнику (добавление очереди с использованием связанного списка в программировании на Python) для создания очереди связанного списка и обнаруживаю, что при попытке запустить код я получаю ошибку имениэто говорит о том, что функция enqueue не определена.

# queue is empty at beginning

queue = {'front': None, 'back': None}

# we will use a node to keep track of the elements
# in the queue which is represented by a linked list

class node:
    def __init__(self, data, next):
        self.data = data
        self.next = next

# add elements to queue in 0(1) time
    def enqueue(queue, element):
        N = node(element, None)
        if queue['back'] == None:
            queue['front'] = N
            queue['back'] = N
        else:
            queue['back'].next = N
            queue['back'] = queue['back'].next

# remove first element from queue in 0(1) time
def dequeue(queue):
    if queue['front'] != None:

        first = queue['front']
        queue['front'] = queue['front'].next
        return first.data
    else:
        if queue['back'] != None:
            queue['back'] = None
        return 'Cannot dequeue because queue isempty'

enqueue(queue, 'a')
enqueue(queue, 'b')
enqueue(queue, 'c')

print (dequeue(queue))

1 Ответ

0 голосов
/ 10 декабря 2018

Ваш отступ неверен.Прямо сейчас enqueue(queue, element) является методом класса class node.

Попробуйте сдвинуть его влево:

class node:
    def __init__(self, data, next):
        self.data = data
        self.next = next

# add elements to queue in 0(1) time
def enqueue(queue, element):
    N = node(element, None)
    if queue['back'] == None:
        queue['front'] = N
        queue['back'] = N
    else:
        queue['back'].next = N
        queue['back'] = queue['back'].next
...