數據結構

  • 存儲對象的集合
  • 集合不同的類型有不同的查找方法

抽象數據類型(ADT)

把數據類型和數據類型上的運算捆在一起,進行封裝
常用的數據運算:
插入、刪除、修改、查找、排序

  • 組織基本數據類型
    int, float, chart
  • 內存
    連續(xù)的存儲單元,一個字節(jié)會有一個地址標識
    int:4個字節(jié),char:1個字節(jié)

順序表

  • 一種數據,相同類型
    Loc[k] = Loc[0]+k*c
  • 不同類型
    順序表存儲的是元素地址

順序表的結構與實現

  • 元素存儲區(qū)的容量
  • 當前表中已有的元素個數
    表頭+ 數據

一體式結構和分離式結構

順序表的擴展,分離式比較方便
擴充的兩種策略

  • 每次增加固定數目,線性增長
  • 每次翻倍

順序表的操作

  • 插入
  1. 尾端增加元素,時間復雜度O(1)
  2. 保證順序的元素插入O(n)
    3.非保序的元素插入O(1)
    *刪除

python中的順序表

List 特征

  • 按下標位置索引 O(1)
  • 任意加元素,分離式存儲,表頭不變
  • 空列表,8個元素存儲區(qū)
  • 4倍增長達到一定閾值后2倍增長

鏈表

將元素存放在通過鏈接構造起來的一系列存儲塊里
特點:可以充分利用計算機空間,實現靈活的內存動態(tài)管理

鏈表的實現

元素 = 數據區(qū)+鏈接區(qū)

單向鏈表

單鏈表的操作
python中地址表示

python中聲明的變量,保存的是地址

特點:

  • 只能在一端(top)輸入(push)和輸出(pop)
  • 先進后出

棧結構的實現

棧的操作:

  • Stack() 創(chuàng)建一個新的棧
  • push(item) 添加一個新的元素item到棧頂
  • pop() 彈出棧頂元素
  • peek() 返回棧頂元素
  • is_empty() 判斷棧是否為空
  • size() 返回棧元素個數

隊列

特點:

  • 一端添加,另一端取
  • 先進先出
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容