python小辣雞的逆襲
阿新 • • 發佈:2018-12-15
Python真是強大!C語言描述略微麻煩的棧在Python中用列表實現就變得很簡單,以下是用列表描述棧,包括入棧、出棧、取棧頂元素、獲取棧的長度、輸出棧等操作:
class Stack(object):#定義棧類 def __init__(self): self.__list = [] #初始化操作,定義空列表作棧 #入棧操作 def push(self,data): self.__list.append(data) #把列表尾部當作棧頂,即尾插 # 把列表頭部當作棧頂,頭插,每次都把資料放在列表首部 # def push(self,data): # self.__list.append(0,data) #出棧操作 def pop(self): self.__list.pop() #從列表的尾部刪除元素即出棧 # 與之前被註釋的入棧操作相對應,當棧頂是列表頭部時每次出棧即刪除首個元素 # def pop(self): # self.__list.pop(0) #返回棧頂元素 def Get_top(self): #如果列表不為空繼續操作,否則返回None if self.__list: return self.__list[-1] else: return None #判斷是否是空棧 def Empty(self): if not self.__list: return None #獲取棧的長度 def length(self): return len(self.__list) #輸出整個棧 def Print(self): for x in self.__list: print(x) if __name__ == '__main__': s = Stack() s.push(3) s.push(4) s.push(5) print("\n該棧是:") s.Print() print("\n共"+str(s.length())+"個元素\n") #注意必須是str型別 print("棧頂元素是:"+str(s.Get_top())+'\n') print("是否空棧:"+str(s.Empty())+'\n') s.pop() s.pop() s.pop() print("該棧是:") s.Print() print("\n共" + str(s.length()) + "個元素\n") print("棧頂元素是:" + str(s.Get_top()) + '\n') print("是否空棧:" + str(s.Empty()) + '\n')
以下是執行結果:
該棧是:
3
4
5
共3個元素
棧頂元素是:5
是否空棧:None
該棧是:
共0個元素
棧頂元素是:None
是否空棧:None