2015-05-04 2 views
-2

мне нужно зеркало очереди, используя функцию, называемого зеркаломMirrorring очереди в питоне

Я сделал код для класса очереди, но я не знаю, как создать зеркало его. Необходимо распечатать исходную очередь, а затем та же очередь обратная

Любая помощь будет оценена

Мой код:

class Queue: 
    def __init__(self): 
     self.items = [] 
    def is_empty(self): 
     return self.items == [] 
    def enqueue(self, item): 
     self.items.insert(0,item) 
    def dequeue(self): 
     return self.items.pop() 
    def is_empty(self): 
     return not self.items 
    def size(self): 
     return len(self.items) 

class Stack: 
    def __init__(self): 
     self.items = [] 
    def is_empty(self): 
     return self.items == [] 
    def push(self, item): 
     self.items.append(item) 
    def pop(self): 
     return self.items.pop() 
    def peek(self): 
     return self.items[len(self.items)-1] 
    def size(self): 
     return len(self.items) 

def mirror(n): 
    pass 
+0

Хотите, чтобы вы конвертировали очередь в стек? –

+0

Какова актуальность класса стека? –

ответ

0

Это будет работать. Ваша очередь состоит из списка, поэтому вы можете использовать slice syntax в списке, чтобы получить обратную версию очереди.

class Queue: 
    def __init__(self): 
     self.items = [] 
    def enqueue(self, item): 
     self.items.append(item) 
    def __str__(self): 
     '''Allow print to be called on the queue object itself''' 
     return str(self.items) 
    def __getitem__(self, i): 
     '''Allow the queue object to be indexable directly''' 
     return self.items[i] 

def mirror(q): 
    return q[::-1] 

q = Queue() 
for i in range(10): 
    q.enqueue(i) 

print q 
print mirror(q) 

Примечание: очередь добавляется к концу, а не к началу. Это поведение стека.

0

Может быть, вы дать этому попытку: How can I reverse a list in python

Вы можете создать новую очередь, используя обратный список self.items в зеркале функции-члена.

Смежные вопросы