程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python順序表(列表)構造棧

編輯:Python

        棧(stack)又名堆棧,它是一種運算受限的線性表。限定僅在表尾進行插入和刪除操作的線性表。這一端被稱為棧頂,相對地,把另一端稱為棧底。向一個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從一個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

        在棧內進行元素的處理我們可以理解為向杯子裡面倒入水和倒出水,符合先進後出和後進先出的原則。

以下是關於棧的一些操作:

        用Python中已經封裝好的順序表中的列表來構造棧十分簡單,其中我們把列表的尾部當作棧頂,因為在列表的尾部添加元素時間復雜度是O(1),而在列表的頭部添加元素時間復雜度是O(n)。

class Stack(object):
def __init__(self):
self.__list=[]
def push(self,item):
"""
在列表的尾部添加元素,時間復雜度O(1)(壓棧操作)
:return: None
"""
self.__list.append(item)
def is_empty(self):
"""
判斷棧是否為空
:return:
"""
return not self.__list
def pop(self):
"""
:return:彈出棧頂元素
"""
if self.is_empty():
return None
return self.__list.pop()
def peek(self):
"""返回棧頂元素"""
if self.is_empty():
return None
return self.__list[-1]
def size(self):
"""
返回棧的大小
:return: len(self.__list)
"""
return len(self.__list)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved