資料結構:帶有結構特性的資料元素的集合。
常見的資料結構:集合,線性結構,樹形結構,圖形結構等。
線性結構:表中各個結點具有線性關係。
常見的線性結構:棧stack、佇列queue、雙端佇列deque和列表list
棧stack:一次有序的資料項集合,在棧中,資料項的加入和移除都僅發生在同一端。這一端叫棧「頂top」,另一端叫棧「低base」。
距離棧低越近的資料項,留在棧中的時間就越長。 而最新加入棧的資料項會被最先被移除。
即「後進先出lifo」:last in first out
這是一種基於資料項儲存時間的次序,時間越短的離棧頂越近,而時間越長的離棧低越近。
棧的特性:反轉次序
用python實現自定義使用者資料型別 adt stack,可以引用python原生的線性結構型別列表來實現。
**如下:
#!/usr/bin/env python
#-*-coding:utf-8 -*-
"""使用python原生線性資料結構列表來實現使用者自定義資料型別棧stack,即adt stack
"""class
stack:
def__init__
(self):
#棧的定義
self.items =
defisempty(self):
#判斷棧是否為空
return self.items ==
defpush(self, item):
#棧的新增
return
defpeek(self):
#檢視棧頂的資料
return self.items[(len(self.items)-1)]
defpop(self):
#棧資料的移出
return
self.items.pop()
defsize(self):
#棧的長度
return len(self.items)
根據棧的特性我們常有以下的應用。
如程式語言中的括號的匹配,十進位製到二進位制的轉換等等。
python資料結構 2 線性資料結構 棧
2.棧的應用 總結在這個系列的第一篇部落格中,我主要強調了程式設計思維的重要性以及如何高效準確的編寫出能解決問題的 這一篇部落格開始就正式開始python資料結構相關的知識。有一種資料結構,它的元素順序取決於新增的順序或者刪除的順序,一旦某個元素被新增進來,它與前後元素的相對位置也就保持不變了,這樣...
資料結構之線性結構 棧結構(靜態棧的實現)
1,棧的定義 所謂 棧 就是一種可以實現後進先出的資料儲存結構。舉個栗子 我們生活中常見的與棧結構很類似的就是我們裝羽毛球的球筒。我們買羽毛球是通常是要買上一筒羽毛球備用。棧結構有兩種主要的操作,乙個入棧,另乙個是出棧。羽毛球入筒的過程就好比是入棧,羽毛球出筒的過程就好比是出棧。這兩個過程模擬得非常...
資料結構 線性結構 棧
棧 和佇列相反的作用,越是先存入的資料就得越到後才能取出,根據這個特性可以用陣列或鍊錶模擬出棧。陣列模擬棧 新增資料正常順序,每天加乙個數棧頂加一次,彈棧的時候將棧頂指標的數彈出即可,遍歷棧陣列時是從棧頂開始迴圈。1 class arraystack9 判斷棧是否已滿 10public boolea...