-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
數據結構與算法-JavaScript描述 版權信息
- ISBN:9787115363398
- 條形碼:9787115363398 ; 978-7-115-36339-8
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
數據結構與算法-JavaScript描述 本書特色
在過去幾年中,javascript憑借node.js和spidermonkey等平臺,在服務器端編程中得到了廣泛應用。javascript程序員因而迫切需要使用傳統語言(比如c++和java)提供的工具,包括傳統的數據結構以及傳統的排序和查找算法。《數據結構與算法javascript描述》討論在數組即對象、無處不在的全局變量、基于原型的對象模型等javascript語言的環境下,如何實現高效的數據結構和算法。 《數據結構與算法javascript描述》適合javascript程序員以及對javascript語言感興趣的學習者,特別是在學校中沒有系統學習過計算機科學相關課程的“跨界”程序員。
數據結構與算法-JavaScript描述 內容簡介
隨著javascript成功走出客戶端,在服務器端編程中得到日益廣泛的應用,javascript程序員需要實現與c#或java等傳統面向對象編程語言相似的數據結構與算法。本書是用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
數據結構與算法-JavaScript描述 相關資料
“本書對前端工程師是非常好的數據結構與算法入門書籍,它的難度非常適合前端工程師來補習基礎知識。”——程劭非,阿里無線事業部高級技術專家
數據結構與算法-JavaScript描述 作者簡介
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現在阿肯色州北小石城普瓦斯基技術學院當講師,教授計算機信息系統。他還是北小石城阿肯色大學的兼職講師,教授信息科學。在做講師之前,他曾是阿肯色兒童醫院的一名程序設計師/分析師,負責統計計算和數據分析。
- >
朝聞道
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
小考拉的故事-套裝共3冊
- >
我與地壇
- >
史學評論
- >
苦雨齋序跋文-周作人自編集
- >
回憶愛瑪儂
- >
名家帶你讀魯迅:故事新編