數據結構與算法JavaScript描述 (Data Structures and Algorithms with JavaScript)

數據結構與算法JavaScript描述 (Data Structures and Algorithms with JavaScript)

作者: 麥克米倫 (Michael McMillan)
出版社: 人民郵電
出版在: 2014-08-01
ISBN-13: 9787115363398
ISBN-10: 7115363390
裝訂格式: 平裝
總頁數: 200 頁





內容描述


在過去幾年中,JavaScript憑借Node.js和SpiderMonkey等平臺,在服務器端編程中得到了廣泛應用。JavaScript程序員因而迫切需要使用傳統語言(比如C++和Java)提供的工具,包括傳統的數據結構以及傳統的排序和查找算法。《數據結構與算法JavaScript描述》討論在數組即對象、無處不在的全局變量、基於原型的對象模型等JavaScript語言的環境下,如何實現高效的數據結構和算法。
  《數據結構與算法JavaScript描述》適合JavaScript程序員以及對JavaScript語言感興趣的學習者,特別是在學校中沒有系統學習過電腦科學相關課程的“跨界”程序員。


目錄大綱


推薦序
前言
第1章JavaScript的編程環境和模型1 
1.1 JavaScript環境1 
1.2 JavaScript編程實踐2 
1.2.1聲明和初始化變量3 
1.2.2 JavaScript中的算術運算和數學庫函數3 
1.2.3判斷結構4 
1.2 .4循環結構6 
1.2.5函數7 
1.2.6變量作用域7 
1.2.7遞歸9 
1.3對象和麵向對象編程10 
1.4小結11 
第2章數組13 
2.1 JavaScript中對數組的定義13 
2.2使用數組13 
2.2 .1創建數組14 
2.2.2讀寫數組15 
2.2.3由字符串生成數組15 
2.2.4對數組的整體性操作16 
2.3存取函數17 
2.3.1查找元素17 
2.3.2數組的字符串表示18 
2.3.3由已有數組創建新數組18 
2.4可變函數19 
2.4.1為數組添加元素19 
2.4.2從數組中刪除元素20
2.4.3從數組中間位置添加和刪除元素21 
2.4.4為數組排序21 
2.5迭代器方法22 
2.5.1不生成新數組的迭代器方法22 
2.5.2生成新數組的迭代器方法25 
2.6二維和多維數組27 
2.6.1創建二維數組27 
2.6.2處理二維數組的元素28 
2.6.3參差不齊的數組29 
2.7對像數組30 
2.8對像中的數組31 
2.9練習32 
第3章列表33 
3.1列表的抽像數據類型定義33 
3.2實現列表類34 
3.2.1 append:給列表添加元素35 
3.2.2 remove:從列表中刪除元素35 
3.2.3 find:在列表中查找某一元素35 
3.2.4 length :列表中有多少個元素36 
3.2.5 tostring:顯示列表中的元素36 
3.2.6 insert:向列表中插入一個元素37 
3.2.7 clear:清空列表中所有的元素37 
3.2.8 contains:判斷給定值是否在列表中37 
3.2.9遍歷列表38 
3.3使用迭代器訪問列表39 
3.4一個基於列表的應用40
3.4.1讀取文本文件40 
3.4.2使用列表管理影碟租賃41 
3.5練習44 
第4章棧45 
4.1對棧的操作45 
4.2棧的實現46 
4.3使用Stack類48 
4.3.1數制間的相互轉換49 
4.3.2回文50 
4.3.3遞歸演示51 
4.4練習52 
第5章隊列53 
5.1對隊列的操作53 
5.2一個用數組實現的隊列54 
5.3使用隊列:方塊舞的舞伴分配問題57 
5.4使用隊列對數據進行排序61 
5.5優先隊列63 
5.6練習65 
第6章鍊錶67 
6.1數組的缺點67 
6.2定義鍊錶67 
6.3設計一個基於對象的鍊錶69 
6.3.1 Node類69 
6.3.2 LinkedList類69 
6.3.3插入新節點69 
6.3.4從鍊錶中刪除一個節點71 
6.4雙向鍊錶74 
6.5循環鍊錶78 
6.6鍊錶的其他方法79 
6.7練習79 
第7章字典81
7.1 Dictionary類81 
7.2 Dictionary類的輔助方法83 
7.3為Dictionary類添加排序功能85 
7.4練習86 
第8章散列87 
8.1散列概覽87 
8.2 HashTable類88 
8.2.1選擇一個散列函數88 
8.2.2一個更好的散列函數91 
8.2.3散列化整型鍵93 
8.2.4對散列表排序、從散列表中取值95 
8.3碰撞處理96 
8.3.1開鏈法96 
8.3.2線性探測法99 
8.4練習100 
第9章集合101 
9.1集合的定義、操作和屬性101 
9.1.1集合的定義101 
9.1.2對集合的操作102 
9.2 Set類的實現102 
9.3更多集合操作104 
9.4練習107 
第10章二叉樹和二叉查找樹109 
10.1樹的定義109 
10.2二叉樹和二叉查找樹111 
10.2.1實現二叉查找樹111 
10.2.2遍歷二叉查找樹113 
10.3在二叉查找樹上進行查找116
10.3.1查找最小值和最大值116 
10.3.2查找給定值117 
10.4從二叉查找樹上刪除節點118 
10.5計數120 
10.6練習123 
第11章圖和圖算法125 
11.1圖的定義125 
11.2用圖對現實中的系統建模127 
11.3圖類127 
11.3.1表示頂點127 
11.3.2表示邊127 
11.3.3構建圖128 
11.4搜索圖130 
11.4.1深度優先搜索130 
11.4.2廣度優先搜索133 
11.5查找最短路徑135 
11.5.1廣度優先搜索對應的最短路徑135 
11.5.2確定路徑135 
11.6拓撲排序137 
11.6.1拓撲排序算法137 
11.6.2實現拓撲排序算法137 
11.7練習141 
第12章排序算法143 
12.1數組測試平台143 
12.2基本排序算法145 
12.2.1冒泡排序145 
12.2.2選擇排序148 
12.2.3插入排序150 
12.2.4基本排序算法的計時比較151
12.3高級排序算法153 
12.3.1希爾排序153 
12.3.2歸併排序158 
12.3.3快速排序163 
12.4練習167 
第13章檢索算法169 
13.1順序查找169 
13.1.1查找最小值和最大值172 
13.1.2使用自組織數據175 
13.2二分查找算法177 
13.3查找文本數據183 
13.4練習185
 
第14章高級算法187 
14.1動態規劃187 
14.1.1動態規劃實例:計算斐波那契數列188 
14.1.2尋找最長公共子串191 
14.1.3背包問題:遞歸解決方案194 
14.1.4背包問題:動態規劃方案195 
14.2貪心算法196 
14.2.1第一個貪心算法案例:找零問題196 
14.2.2背包問題的貪心算法解決方案197 
14.3練習199 
封面介紹200


作者介紹


Michael McMillan作為大學老師和程序員,曾編寫過多部受到好評的數據結構與算法圖書,包括Data Structures and Algorithms Using C#、Data Structures and Algorithms Using Visual Basic.NET,以及其他計算機教程,如Object-Oriented Programming with Visual Basic.NET、C++ Programming: An Introduction or A Clear and Concise Introduction to C++ Programming For the Beginner、Java Programming Tutorial、Perl from the Ground Up等。Michael現在阿肯色州北小石城普瓦斯基技術學院當講師,教授計算機信息系統。他還是北小石城阿肯色大學的兼職講師,教授信息科學。在做講師之前,他曾是阿肯色兒童醫院的一名程序設計師/分析師,負責統計計算和數據分析。




相關書籍

大數據挖掘技術與應用

作者 周中元 王菁

2014-08-01

從0到1 HTML5+CSS3修煉之道

作者 莫振傑

2014-08-01

大數據戰爭:數據在全球市場的使用與濫用

作者 【英】洛倫佐·費爾拉蒙蒂(Lorenzo Fioramonti)

2014-08-01