《資料結構與演算法JavaScript描述》

來源:互聯網
上載者:User

標籤:style   http   color   java   使用   os   io   strong   

《資料結構與演算法JavaScript描述》

基本資料

(美)Michael McMillan   

譯者: 王群鋒 杜歡

叢書名: 圖靈程式設計叢書

出版社:人民郵電出版社

ISBN:9787115363398

上架時間:2014-8-5

出版日期:2014 年8月

開本:16開

版次:1-1

所屬分類:電腦 > 軟體與程式設計 > 網路編程 > javascript

 

更多關於》》》 《資料結構與演算法JavaScript描述》

 

編輯精選

隨著JavaScript成功走出用戶端,在伺服器端編程中得到日益廣泛的應用,JavaScript程式員需要實現與C#或Java等傳統物件導向程式設計語言相似的資料結構與演算法。本書是用JavaScript描述資料結構與演算法的開山之作,匯聚了作者多年的實戰經驗。這本實戰指南通過豐富的樣本,向讀者透徹講解了在JavaScript環境下,如何通過一系列儲存機制(包括鏈表、棧、隊列和圖)高效地達到編程目的。

 

內容簡介

    書籍

    電腦書籍

在過去幾年中,JavaScript憑藉Node.js和SpiderMonkey等平台,在伺服器端編程中得到了廣泛應用。JavaScript程式員因而迫切需要使用傳統語言(比如C++和Java)提供的工具,包括傳統的資料結構以及傳統的排序和尋找演算法。《資料結構與演算法JavaScript描述》討論在數組即對象、無處不在的全域變數、基於原型的物件模型等JavaScript語言的環境下,如何?高效的資料結構和演算法。

《資料結構與演算法JavaScript描述》適合JavaScript程式員以及對JavaScript語言感興趣的學習者,特別是在學校中沒有系統學習過電腦科學相關課程的“跨界”程式員。

 

媒體評論

  “本書對前端工程師是非常好的資料結構與演算法入門書籍,它的難度非常適合前端工程師來補習基礎知識。”

  ——程劭非,阿里無線事業部進階技術專家

 

 

目錄

《資料結構與演算法javascript描述》

推薦序  xi

前言  xii

第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

 

本圖書資訊來源:互動出版網

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.