幫助中心 | 我的帳號 | 關於我們

數據結構圖解/圖靈程序設計叢書

  • 作者:(意)馬爾切洛·拉·羅卡|責編:王軍花|譯者:謝勰//王輝
  • 出版社:人民郵電
  • ISBN:9787115695871
  • 出版日期:2026/06/01
  • 裝幀:平裝
  • 頁數:221
人民幣:RMB 109.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書旨在介紹重要且廣泛應用的數據結構,幫助讀者理解這些數據結構的實際案例以及如何在編程中充分發揮它們的作用。書中不僅涵蓋了數組、鏈表、棧、簡單隊列、優先順序隊列、散列表、二叉查找樹等各種常見核心數據結構的實現和用法,還特別討論了實際工作中使用數據結構時應注意的問題。此外,讀者還將學習如何進一步使用圖來建模和處理更為複雜的數據。本書重在引導初學者逐步掌握和靈活運用數據結構,讀者無須具備高深的數學知識,掌握高中數學知識即可開始學習。全書對所有數據結構都提供了用Python實現的示例,使讀者可迅速實踐所學的知識。此外,本書特別關注數據結構各種操作的時間和內存需求,並著重討論數據結構的權衡以及如何避免潛在的問題,以幫助讀者在編寫代碼時選擇最佳的數據結構解決方案,並且利用數據結構的強大功能來編寫更高效的代碼。
    本書適合了解Python基礎知識的讀者閱讀。

作者介紹
(意)馬爾切洛·拉·羅卡|責編:王軍花|譯者:謝勰//王輝
    馬爾切洛·拉·羅卡,研究科學家和全棧工程師。現任Luware首席軟體工程師,曾為X、微軟和蘋果等公司的大型Web應用程序和機器學習基礎設施做出貢獻。

目錄
第1章  數據結構簡介:為什麼要學數據結構
  1.1  歡迎閱讀本書
    1.1.1  數據結構無處不在
    1.1.2  人人可學數據結構
  1.2  什麼是數據結構
  1.3  為什麼應該關注數據結構
    1.3.1  什麼時候需要數據結構
    1.3.2  我將來需要編寫代碼來實現這些數據結構嗎
    1.3.3  到底應該怎樣選擇數據結構
  1.4  在實際項目中應該如何使用數據結構
    1.4.1  以心智模型教你用數據結構
    1.4.2  數據結構的應用實例
  1.5  要點回顧
第2章  靜態數組:創建你的第一個數據結構
  2.1  什麼是數組
    2.1.1  什麼時候需要使用數組
    2.1.2  定義:尺寸固定型與尺寸可變型
    2.1.3  值及其索引
    2.1.4  初始化
  2.2  Python中的數組
    2.2.1  Python中的list類與array.array類
    2.2.2  索引設定
  2.3  數組中的操作
    2.3.1  無序數組類
    2.3.2  添加新元素
    2.3.3  刪除某個元素
    2.3.4  查找某個值
    2.3.5  遍歷
  2.4  數組的實際應用
    2.4.1  數據統計
    2.4.2  (藏品)集合
    2.4.3  多維數組
  2.5  要點回顧
第3章  有序數組:查找更快,但需付出代價
  3.1  有序數組的意義何在
  3.2  實現有序數組
    3.2.1  插入
    3.2.2  刪除
    3.2.3  線性查找
    3.2.4  二分查找
  3.3  要點回顧
第4章  大O記號:衡量演算法性能的準則體系
  4.1  如何選擇最佳方案
    4.1.1  剖面分析
    4.1.2  漸近分析
    4.1.3  應該選擇哪種方案
  4.2  大O記號
    4.2.1  隨機存取機(RAM)模型
    4.2.2  增長速率
    4.2.3  常見的函數量級

    4.2.4  真實世界里的增長速率
    4.2.5  大O算術
    4.2.6  最壞情況分析、平均情況分析及分攤分析
    4.2.7  資源衡量
  4.3  漸近分析實例
    4.3.1  線性查找
    4.3.2  二分查找
  4.4  要點回顧
第5章  動態數組:處理尺寸可變的數據集合
  5.1  靜態數組的局限性
    5.1.1  尺寸固定
    5.1.2  權衡利弊
  5.2  如何增加數組長度
  5.3  獲獎作品展示櫃
    5.3.1  策略1:每次增加1個單元
    5.3.2  策略2:按固定量增加單元數
    5.3.3  策略3:容量加倍
    5.3.4  策略對比
    5.3.5  將各種增加策略用於數組
  5.4  數組需要進行縮減嗎
    5.4.1  刪除后減半
    5.4.2  更明智的縮減
  5.5  實現動態數組
    5.5.1  DynamicArray類
    5.5.2  插入
    5.5.3  查找
    5.5.4  刪除
  5.6  要點回顧
第6章  鏈表:易於變通的動態集合
  6.1  鏈表與數組
    6.1.1  鏈表的底層機制
    6.1.2  對比數組與鏈表
  6.2  單鏈表
    6.2.1  訂單管理
    6.2.2  實現單鏈表
    6.2.3  插入
    6.2.4  查找
    6.2.5  刪除
    6.2.6  從表首刪除元素
  6.3  有序鏈表
    6.3.1  在鏈表裡面插入
    6.3.2  能否改進查找操作的性能
  6.4  雙鏈表
    6.4.1  鏈接雙倍,樂趣翻倍
    6.4.2  折返的重要性
    6.4.3  插入
    6.4.4  查找與遍歷
    6.4.5  刪除
    6.4.6  拼接兩個鏈表
  6.5  循環鏈表

    6.5.1  循環鏈表實例
    6.5.2  實現技巧
  6.6  要點回顧
第7章  抽象數據類型:設計最簡單的容器——袋
  7.1  抽象數據類型與數據結構
    7.1.1  定義
    7.1.2  數組與鏈表:抽象數據類型還是數據結構
    7.1.3  又一個實例:照明開關
  7.2  容器
    7.2.1  什麼是容器
    7.2.2  什麼不是容器
    7.2.3  容器的主要特徵
  7.3  最簡單的容器:袋
    7.3.1  袋的定義
    7.3.2  袋的應用實例
    7.3.3  袋的實現
  7.4  要點回顧
第8章  棧:處理數據之前先將其疊放起來
  8.1  棧作為抽象數據類型
    8.1.1  棧與後進先出策略
    8.1.2  棧的操作
    8.1.3  棧的應用實例
  8.2  棧作為數據結構
    8.2.1  以靜態數組存儲棧的數據
    8.2.2  以動態數組存儲棧的數據
    8.2.3  鏈表與棧
  8.3  棧的鏈表實現
    8.3.1  入棧
    8.3.2  出棧
    8.3.3  查看
  8.4  理論與現實
  8.5  棧的更多應用
    8.5.1  調用棧
    8.5.2  表達式求值
    8.5.3  撤銷/重做
    8.5.4  折返
  8.6  要點回顧
第9章  隊列:按抵達次序留存信息
  9.1  隊列作為抽象數據類型
    9.1.1  先進先出策略
    9.1.2  隊列的操作
    9.1.3  隊列的應用實例
  9.2  隊列作為數據結構
    9.2.1  以鏈表實現隊列
    9.2.2  以靜態數組實現隊列
    9.2.3  實現方案對比
  9.3  隊列的實現
    9.3.1  底層靜態數組
    9.3.2  入隊
    9.3.3  出隊

  9.4  用動態數組會如何
  9.5  隊列的更多應用
    9.5.1  消息傳送系統
    9.5.2  Web伺服器
    9.5.3  操作系統
  9.6  要點回顧
第10章  優先順序隊列和堆:根據優先順序處理數據
  10.1  引入優先順序來拓展隊列
    10.1.1  處理漏洞(以改進方式)
    10.1.2  優先順序隊列的抽象數據類型
  10.2  優先順序隊列作為數據結構
    10.2.1  有序鏈表和有序數組
    10.2.2  無序鏈表和無序數組
    10.2.3  性能概覽
    10.2.4  偏序
  10.3  堆
    10.3.1  特殊的樹結構
    10.3.2  堆的其他性質
    10.3.3  堆的性能
    10.3.4  最大堆和最小堆
  10.4  實現堆
    10.4.1  如何存儲堆
    10.4.2  構造函數、優先順序及輔助方法
    10.4.3  插入
    10.4.4  取頂
    10.4.5  堆化
  10.5  優先順序隊列的應用實例
  10.6  要點回顧
第11章  二叉查找樹:尋求平衡的容器
  11.1  樹的構成要素
    11.1.1  樹的定義
    11.1.2  從鏈表到樹
    11.1.3  二叉樹
    11.1.4  樹的若干應用
  11.2  二叉查找樹
    11.2.1  次序很重要
    11.2.2  類定義和構造函數
    11.2.3  查找
    11.2.4  尋找最大值和最小值
    11.2.5  插入
    11.2.6  刪除
    11.2.7  所有情況的整合
    11.2.8  遍歷
    11.2.9  前鄰與后鄰
  11.3  平衡樹
    11.3.1  二叉查找樹的應用實例
    11.3.2  敵手型插入序列
    11.3.3  刪除操作會使樹失衡
    11.3.4  調整樹的平衡
  11.4  要點回顧

第12章  字典與散列表:如何構建和使用關聯式數組
  12.1  字典問題
    12.1.1  刪除重複項
    12.1.2  字典抽象數據類型
  12.2  實現字典的數據結構
    12.2.1  數組
    12.2.2  鏈表
    12.2.3  平衡二叉查找樹
    12.2.4  對比總結
  12.3  散列表
    12.3.1  新的索引方案
    12.3.2  索引操作的開銷
    12.3.3  理想模型的問題
  12.4  散列
    12.4.1  散列函數
    12.4.2  除余法
    12.4.3  乘截法
  12.5  解決衝突
    12.5.1  結鏈
    12.5.2  開放式定址
    12.5.3  開放式定址存在的問題
    12.5.4  使用散列會帶來的風險
  12.6  要點回顧
第13章  圖:學會如何對數據中的複雜關係進行建模
  13.1  什麼是圖
    13.1.1  圖的定義
    13.1.2  好友圖
    13.1.3  有向圖與無向圖
    13.1.4  有環圖與無環圖
    13.1.5  連通圖和連通分量
    13.1.6  作為圖的樹
  13.2  圖的實現
    13.2.1  鄰接表
    13.2.2  鄰接矩陣
  13.3  圖搜索
    13.3.1  尋找好友
    13.3.2  廣度優先搜索
    13.3.3  深度優先搜索
  13.4  未來可期
  13.5  要點回顧

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032