首頁 >後端開發 >Python教學 >python有棧嗎

python有棧嗎

藏色散人
藏色散人原創
2019-06-28 10:56:435130瀏覽

python有棧嗎

python有堆疊嗎?

python是有堆疊的。棧(stacks)是一種只能透過存取其一端來實現資料儲存與檢索的線性資料結構,具有後進先出(last in first out,LIFO)的特徵。

對堆疊的兩個主要操作是將一個元素壓入堆疊和將一個元素彈出堆疊。

入棧使用push()方法,出棧使用pop()方法

另一個常用的操作是預覽堆疊頂部的元素。 pop()方法雖然可以存取棧頂的元素,但是呼叫該方法後,棧頂元素也從棧中被永久性地刪除了。 peek()方法則只回傳棧頂元素,而不刪除它

為了記錄棧頂元素的位置,同時也為了標記哪裡可以加入新元素,我們使用變數top,當向棧內壓入元素時,變數會增加;從堆疊內彈出元素時,變數會減少

push()、pop()和peek()是堆疊的3個主要方法,但是堆疊還有其他方法和屬性

stack通常的操作:

  Stack()   建立一个空的栈对象
  push()    把一个元素添加到栈的最顶层
  pop()     删除栈最顶层的元素,并返回这个元素
  peek()    返回最顶层的元素,并不删除它
  isEmpty() 判断栈是否为空
  size()    返回栈中元素的个数
#-*- coding:?UTF-8 -*-
__author__ = 'Administrator'
#python的list对象模拟栈的实现
class Stack:
    #模拟栈
    def __init__(self):
        self.items = []
    def isEmpty(self):
        return len(self.items)==0
    def push(self,item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()
    def peek(self):
        if not self.isEmpty():
            return self.items[len(self.items)-1]
    def size(self):
        return len(self.items)
#创建一个栈对象,并加入操作方法
s = Stack()
print(s.isEmpty())
s.push(4)
s.push('DOG')
print(s.peek())
s.push(True)
print(s.size())
print(s.isEmpty())
s.push(8.4)
print(s.pop())
print(s.pop())
print(s.size())

相關推薦:《Python教程

以上是python有棧嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn