Maison  >  Article  >  développement back-end  >  Exemples détaillés de la façon dont Python implémente les piles et les files d'attente

Exemples détaillés de la façon dont Python implémente les piles et les files d'attente

伊谢尔伦
伊谢尔伦original
2017-06-28 13:50:281684parcourir

Cet article présente principalement la méthode de python pour implémenter la pile et la queue, y compris les méthodes de définition et les opérations courantes de la pile et de la file d'attente, qui ont une certaine valeur de référence Amis dans le besoin. Vous pouvez vous référer à ce qui suit

Les exemples de cet article décrivent comment implémenter des piles et des files d'attente en python. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

1. Pour implémenter la pile en python, vous pouvez d'abord écrire la classe Stack dans le fichier stack.py, et utiliser from stack import Stack dans autre fichiers programme, puis vous pouvez utiliser la pile .

Programme stack.py :

class Stack():  
    def init(self,size):  
        self.size=size;  
        self.stack=[];  
        self.top=-1;  
    def push(self,ele):  #入栈之前检查栈是否已满  
        if self.isfull():  
            raise exception("out of range");  
        else:  
            self.stack.append(ele);  
            self.top=self.top+1;  
    def pop(self):             # 出栈之前检查栈是否为空  
        if self.isempty():  
            raise exception("stack is empty");  
        else:  
            self.top=self.top-1;  
            return self.stack.pop();  
      
    def isfull(self):  
        return self.top+1==self.size;  
    def isempty(self):  
        return self.top==-1;

Écrivez un autre fichier programme, stacktest.py, en utilisant la pile. Le contenu est le suivant :

#!/usr/bin/python   
from stack import Stack  
s=Stack(20);  
for i in range(3):  
    s.push(i);  
s.pop()  
print
 s.isempty();
2 , file d'attente d'implémentation python :

class Queue():  
    def init(self,size):  
        self.size=size;  
        self.front=-1;  
        self.rear=-1;  
        self.queue=[];  
    def enqueue(self,ele):  #入队操作  
        if self.isfull():  
            raise exception("queue is full");  
        else:  
            self.queue.append(ele);  
            self.rear=self.rear+1;  
    def dequeue(self):      #出队操作  
        if self.isempty():  
            raise exception("queue is empty");  
        else:  
            self.front=self.front+1;  
            return self.queue[self.front];  
    def isfull(self):  
        return self.rear-self.front+1==self.size;  
    def isempty(self):  
        return self.front==self.rear;  
      
q=Queue(10);  
for i in range(3):  
    q.enqueue(i);  
print q.dequeue();  
print q.isempty();


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn