黑马程序员技术交流社区

标题: 【郑州校区】 python数据结构与算法(10) [打印本页]

作者: 谷粒姐姐    时间: 2018-11-28 10:55
标题: 【郑州校区】 python数据结构与算法(10)

栈(stack),有些地⽅称为堆栈,是⼀种容器,可存⼊数据元素、访问元 素、删除元素,它的特点在于只能允许在容器的⼀端(称为栈顶端指标,英 语:top)进⾏加⼊数据(英语:push)和输出数据(英语:pop)的运算。 没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存⼊的 那个元素,确定了⼀种默认的访问顺序。
由于栈数据结构只允许在⼀端进⾏操作,因⽽按照后进先出(LIFO,        Last        In First        Out)的原理运作。

栈结构实现
栈可以⽤顺序表实现,也可以⽤链表实现。
栈的操作
Stack()        创建⼀个新的空栈 push(item)        添加⼀个新的元素item到栈顶 pop()        弹出栈顶元素 peek()        返回栈顶元素 is_empty()        判断栈是否为空 size()        返回栈的元素个数

[AppleScript] 纯文本查看 复制代码
class        Stack(object):                                """栈"""                                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)
if        __name__        ==        "__main__":                                stack        =        Stack()                                stack.push("hello")                                stack.push("world")                                stack.push("itcast")                                print        stack.size()                                print        stack.peek()                                print        stack.pop()                                print        stack.pop()                                print        stack.pop()

执⾏过程如下:       









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2