作品介紹

數(shù)據(jù)結(jié)構(gòu)與算法JavaScript描述


作者:[美]MichaelMcMillan     整理日期:2017-02-28 00:04:22


  通過本書的學(xué)習(xí),讀者將能自如地選擇最合適的數(shù)據(jù)結(jié)構(gòu)與算法,并在java script開發(fā)中懂得權(quán)衡使用。此外,本書也概述了與數(shù)據(jù)結(jié)構(gòu)與算法相關(guān)的java script特性。
  本書主要內(nèi)容如下。
  數(shù)組和列表:最常用的數(shù)據(jù)結(jié)構(gòu)。
  棧和隊(duì)列:與列表類似但更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
  鏈表:如何通過它們克服數(shù)組的不足。
  字典:將數(shù)據(jù)以鍵-值對(duì)的形式存儲(chǔ)。
  散列:適用于快速查找和檢索。
  集合:適用于存儲(chǔ)只出現(xiàn)一次的元素。
  二叉樹:以層級(jí)的形式存儲(chǔ)數(shù)據(jù)。
  圖和圖算法:網(wǎng)絡(luò)建模的理想選擇。
  算法:包括排序或搜索數(shù)據(jù)的算法。
  高級(jí)算法:動(dòng)態(tài)規(guī)劃和貪心算法。

作者簡介:

作者簡介:
  Michael McMillan
  作為大學(xué)老師和程序員,曾編寫過多部受到好評(píng)的數(shù)據(jù)結(jié)構(gòu)與算法圖書,包括Data Structures and Algorithms Using C#、Data Structures and Algorithms Using Visual Basic.NET,以及其他計(jì)算機(jī)教程,如Object-Oriented Programming with Visual Basic.NET、C++ Programming: An Introduction、Java Programming Tutorial、Perl from the Ground Up等。Michael現(xiàn)在阿肯色州北小石城普瓦斯基技術(shù)學(xué)院當(dāng)講師,教授計(jì)算機(jī)信息系統(tǒng)。他還是北小石城阿肯色大學(xué)的兼職講師,教授信息科學(xué)。在做講師之前,他曾是阿肯色兒童醫(yī)院的一名程序設(shè)計(jì)師/分析師,負(fù)責(zé)統(tǒng)計(jì)計(jì)算和數(shù)據(jù)分析。
  譯者簡介:
  王群鋒
  1981年生于陜西省富平縣橋西大隊(duì)三里村,2004年畢業(yè)于西安電子科技大學(xué)。畢業(yè)后當(dāng)了一名程序員,現(xiàn)居西安,在IBM西安研發(fā)中心從事下一代統(tǒng)計(jì)預(yù)測(cè)軟件的開發(fā)工作。
  杜歡
  淘寶網(wǎng)高級(jí)技術(shù)專家,2012年加入淘寶,曾就職于雅虎臺(tái)灣及CISCO。對(duì)前端架構(gòu)、前后端協(xié)作有自己的見解,專注于Web產(chǎn)品設(shè)計(jì)、可用性實(shí)施,熱愛標(biāo)準(zhǔn)化。

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





上一本:復(fù)雜思想:自覺的科學(xué) 下一本:終極復(fù)制

作家文集

下載說明
數(shù)據(jù)結(jié)構(gòu)與算法JavaScript描述的作者是[美]MichaelMcMillan,全書語言優(yōu)美,行文流暢,內(nèi)容豐富生動(dòng)引人入勝。為表示對(duì)作者的支持,建議在閱讀電子書的同時(shí),購買紙質(zhì)書。

更多好書