用python實現棧
阿新 • • 發佈:2019-01-10
感覺用python寫棧特別方便,因為不像c/c++那樣要自己寫append之類的函式,列表本身已經自帶了很多函式,純當寫類的練手吧。code:
輸出:class Stack: def __init__(self,limit=10):#初始化,棧的最大範圍預設是10 #變數名字前有兩條下劃線,說明是私有變數 self.__stack=[] self.__limit=limit def __str__(self):#使用print的時候直接呼叫 return ''.join([str(i) for i in self.__stack]) def push(self,data):#入棧 if len(self.__stack)>=self.__limit: self.double_limit()#如果棧的範圍不夠就擴大一倍 self.__stack.append(data) def pop(self):#出棧 if len(self.__stack)<=0: return -1 else: self.__stack.pop()#呼叫python列表自帶的pop def peek(self):#返回棧頂的元素 if len(self.__stack)<=0: return -1 else : return self.__stack[-1] def is_empty(self):#判斷是否為空 return self.size()==0 def size(self): return len(self.__stack) def double_limit(self): self.__limit*=2 #示例程式碼 mystack=Stack() for i in range(10): mystack.push(i) print(mystack) mystack.pop() print(mystack) print(mystack.peek())
0123456789
012345678
8
倒是私有變數這個今天才知道。以上。