程序員學數據結構 程序员学数据结构

[美]威廉·史密斯

買這商品的人也買了...

商品描述

本書由淺入深地詳細講解了電腦存儲使用的多種數據結構。本書首先講解了初級的數據結構(如表、棧、隊列和堆等),具體包括它們的工作原理、功能實現以及典型的應用程序等;然後討論了數據結構,如泛型集合、排序、搜索和遞歸等;最後介紹瞭如何在日常應用中使用這些數據結構。
本書通過實際案例向讀者介紹了多種數據結構及其潛在應用,教會讀者如何分析問題、選擇合適的數據結構解決方案等。本書的一大特色是使用多種語言(C#、Java、Objective-C和Swift)進行講述。
本書適合初學編程或自學編程的人員以及電腦相關專業的教師和學生閱讀,也非常適合程序員參考。

作者簡介

作者:[美]威廉·史密斯(William Smith)譯者:崔敖

William Smith早年獲得了環境科學與商務管理學位,在環境領域從事了數年的專業工作。他的軟件開發經歷始於1988年,並在從事環境領域工作時,始終將編程作為他的興趣愛好,不斷進行軟件開發。後來他進入了馬里蘭大學深造,並獲得了計算機科學學位。
William現在是一名獨立軟件開發工程師和專業技術圖書的作者。他成立了Appsmiths公司,該公司的主要業務是軟件開發和諮詢,致力於使用原生工具和跨平台工具(如Xamarin和Monogame)來進行移動應用和遊戲開發。
William與他的夫人和孩子一起居住在西佛吉尼亞州的鄉村,全家享受著打獵、釣魚和露營給他們帶來的樂趣。

目錄大綱

第1章數據類型:基本的數據結構1 
1.1數值數據類型1 
1.1.1整型2 
1.1.2單精度浮點類型10 
1.1.3雙精度浮點類型12 
1.1.4貨幣類型15 
1.1.5類型轉換17 
1.2布爾數據類型20 
1.2.1運算符優先級22 
1.2.2短路求值22 
1.3字符串26 
1.4小結29 

第2章數組:基本數據集30 
2.1可變數組與不可變數組32 
案例學習:用戶登錄到一個Web服務32 
2.2高級話題43 
2.2.1線性查找43 
2.2.2原始數組45 
2.2.3對像數組46 
2.2.4混合數組46 
2.2.5多維數組47 
2.2.6不規則數組49 
2.3小結49 

第3章列表:線性數據集50 
3.1列表的實現51 
3.1.1數組表52 
3.1.2鍊錶53 
3.2列表的實例化53 
3.3案例回顧:用戶登錄到一個
Web服務55 
3.3.1泛型59
3.3.2案例學習:自行車路徑60 
3.4雙鍊錶73 
3.5查找73 
3.6一些指針74 
3.7小結74 

第4章棧:後入先出的數據集75 
4.1棧的初始化75 
4.1.1 UINavigationController 76 
4.1.2棧的操作77 
4.2案例學習:運動規划算法77 
4.3高級話題——棧的實現88 
4.3.1數組棧88 
4.3.2鍊錶棧88 
4.4小結89 

第5章隊列:先入先出的數據集90 
5.1隊列的初始化91 
5.2案例學習:客戶服務93 
5.3高級話題106 
5.3.1數組隊列106 
5.3.2鍊錶隊列106 
5.3.3堆隊列106 
5.3.4雙端隊列107 
5.3.5優先級隊列107 
5.4小結107 

第6章字典:關鍵字數據集108 
6.1字典的初始化109 
6.2案例學習:遊戲代幣統計113 
6.3高級話題125 
6.3.1散列表字典126 
6.3.2查找樹字典126 
6.4小結126

第7章集合:不包含重複項的數據集127 
7.1集合論128 
7.2集合的初始化129 
7.3案例回顧:用戶登錄到一個
Web服務133 
7.4案例學習:音樂播放列表137 
7.5高級話題150 
7.5.1散列表集合150 
7.5.2樹集合151 
7.5.3數組集合151 
7.6小結151 

第8章結構體:更為複雜的數據類型152 
8.1基本要點152 
8.1.1 C# 152 
8.1.2 Java 158 
8.1.3 Objective-C 158 
8.1.4 Swift 161 
8.2枚舉類型165 
8.3小結170 

第9章樹:非線性數據結構171 
9.1樹結構與樹類型171 
9.2樹的相關術語172 
9.3樹的基本操作173 
9.4樹的實例化174 
9.5樹的結構174 
9.6遞歸207 
9.7遍歷208 
9.8小結209 

第10章堆:有序樹210 
10.1堆的實現210 
10.2堆的操作211 
10.3堆的實例化212
10.4最小堆結構212 
10.5常見應用場景227 
10.6小結227 

第11章圖:互相連接的對象228 
11.1概念圖示228 
11.2圖的操作229 
11.3圖的實現231 
11.4圖數據結構231 
11.5小結249 

]第12章排序:為混亂帶來秩序250 
12.1選擇排序251 
12.2插入排序255 
12.3冒泡排序259 
12.4快速排序263 
12.5歸併排序268 
12.6桶排序273 
12.7小結276 

第13章查找:找你所需277 
13.1線性查找277 
13.2二分查找281 
13.3跳躍查找284 
13.4小結289