Форум сайта python.su
Добрый день. Нужно продемонстрировать алгоритм стека.
Общая идея такова, создаем объект ОЧЕРЕДЬ , типа List , в него складываем то что надо, когда надо вытащить, пишем в консоль последний элемент списка и стираем.
Вообщем я написал на Python 2.6 такое
# -*- coding: cp1251 -*-
'''
Created on 12.06.2011
@author: я автор
'''
print "Программа стек"
class stec():
mystec = []
def __init__(self, name):
print "Создан стек" , name
def push(self):
n = raw_input ("Что кладем в стек ? :")
self.mystec.append(n)
def pop(self):
print "Достаем из стека последнее "
self.mystec(-1)
self.mystec.remove(-1)
def seeyuo(self):
print self.mystec()
"""
for i in self.mystec():
print i
"""
numberonestec = stec("Номер один")
numbertwostec = stec("Номер два")
numberonestec.push()
numberonestec.push()
numberonestec.push()
numberonestec.pop()
Офлайн
Ну у меня и каша в голове )) Вот как надо. Ghie прощения - закройте вопрос
# -*- coding: cp1251 -*-
'''
Created on 12.06.2011
@author: я автор
'''
print "Программа стек"
class stec():
mystec = []
numberofposition = -1
def __init__(self, name):
print "Создан стек" , name
def push(self):
n = raw_input ("Что кладем в стек ? :")
self.mystec.append(n)
self.numberofposition += 1
def pop(self):
print "Достаем из стека последнее "
print self.mystec[self.numberofposition]
self.mystec.pop(self.numberofposition)
self.numberofposition -=1
def seeyuo(self):
print "Теперь в стеке хранится"
for i in self.mystec : print i
numberonestec = stec("Номер один")
numbertwostec = stec("Номер два")
numberonestec.push()
numberonestec.push()
numberonestec.push()
numberonestec.pop()
numberonestec.seeyuo()
numberonestec.pop()
numberonestec.seeyuo()
numberonestec.pop()
numberonestec.seeyuo()
Отредактировано (Июнь 26, 2011 13:38:37)
Офлайн
доп переменную не обязательно, ошибочную строку надо было заменить на:
print self.mystec[-1]
print self.mystec.pop()
Отредактировано (Июнь 26, 2011 16:07:17)
Офлайн
Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач Язык программирования Python:
Методы, определенные для списков, позволяют использовать список в качестве стека, где последний добавленный элемент извлекается первым (LIFO, “last-in, first-out”). Для добавления элемента в стек, используйте метод append(), для извлечения элемента с вершины стека — метод pop() без явного указания индекса:
>>> stack =
>>> stack.append(6)
>>> stack.append(7)
>>> stack
>>> stack.pop()
7
>>> stack
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
Онлайн