1.說明
1.1 概念
簡單來說,數據結構是用來設計數據以何種方式組織並存儲在計算機中,像我們常見的列表,字典,元祖等都屬於數據結構
1.2 分類
按照其邏輯可以分爲線性結構,樹結構,圖結構
線性結構:數據結構中的元素存在一對一的相互關係,如列表
樹結構:數據結構中的元素存在一對多的相互關係
圖結構:數據結構中的元素存在多對多的相互關係
2.關於列表(數組)
在其他語言中列表被稱爲數組(像c),在Python中被稱爲列表,這兩者之間還是存在區別的:
列表可以可以混合存儲元素類型,像字符串,整數等,而數組不行,要求元素類型一致
數組長度是固定的,而Python中長度不夠會開闢新的內存地址,再把原來的內容拷過來
3.關於隊列(queue)
它屬於一種數據集合,僅允許在列表的一端進行插入,另外一端進行刪除
特點:聯想我們排隊打飯,都是先進先出,對頭出隊,隊尾進隊
雙向隊列:隊列的兩端都支持進隊和出隊操作
3.1 python隊列內置模塊
基本操作:
創建隊列:queue = deque(li)
進隊:append
出隊:popleft
雙向隊列隊首進隊:appendleft
雙向隊列隊尾進隊:pop
from collections import deque lis = [9,5,2,7] q = deque(lis,8) # 最大長度是8 q.append(4) # 從隊尾追加 q.popleft() # 隊首出隊 # 對於雙向對列 q.appendleft(99) # 隊首進隊 q.pop() # 隊尾出隊
4.關於棧(stack)
棧也是一個數據集合,只能在一端進行插入或刪除操作的列表
特點:後進先出。聯想一摞書,我們取書只能從上取,存入也只能從上面存
4.1 python棧內置模塊
棧的基本操作:
進棧(壓棧):push
出棧:pop
取棧頂:gettop(查看棧頂元素,但不取走) li[-1]
博客參考鏈接