數據結構(列表,隊列,棧)

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]

 

博客參考鏈接

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章