2010-01-29 5 views
1

J'essaie de coder une classe qui utilise Push and Pop à partir d'une pile (avec une seule liste chaînée). Je ne suis pas sûr de savoir comment écrire les fonctions push et pop. J'ai vraiment besoin d'un exemple simple écrit en Python avec les fonctions suivantes.Liste unique liée en Python, comment écrire pop et pousser?

Push 
Pop 
ifEmpty 
+1

http://stackoverflow.com/questions/ 280243/python-linked-list Deuxième résultat sur Google. – Vince

+2

Pourquoi utiliser une liste chaînée? Les listes intégrées de Python sont parfaites pour cela. – Thomas

+4

http://docs.python.org/tutorial/datastructures.html#using-lists-as-stacks –

Répondre

8

De the docs que Dyno Fu lié à:

Les méthodes de la liste, il est très facile à utiliser une liste comme une pile, où le dernier élément ajouté est le premier élément récupéré ("dernier entré, premier sorti"). À ajouter un élément à la partie supérieure de la pile, utiliser append(). Pour récupérer un élément de en haut de la pile, utilisez pop() sans index explicite. Pour exemple:

>>> stack = [3, 4, 5] 
>>> stack.append(6) 
>>> stack.append(7) 
>>> stack 
[3, 4, 5, 6, 7] 
>>> stack.pop() 
7 
>>> stack 
[3, 4, 5, 6] 
>>> stack.pop() 
6 
>>> stack.pop() 
5 
>>> stack 
[3, 4] 

Et enfin, check if a list is empty:

>>> my_list = [] 
>>> not my_list 
True 
3

Et ici est la classe la plus simple de la pile:

class stack(list): 
    def push(self,item): 
     self.append(item) 
    def isEmpty(self): 
     return not self 

>>> a = stack() 
>>> a.push(1) 
>> a.isEmpty() 
False 
>>> a.pop() 
1 
>>> a.isEmpty() 
True 
Questions connexes