|
-- 會員 / 註冊 --
|
|
|
|
算法與高級語言程序設計 ( 簡體 字) |
作者:高飛,白霞 | 類別:1. -> 程式設計 -> 演算法 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 40261 詢問書籍請說出此書號!【有庫存】 NT售價: 195 元 |
出版日:1/1/2015 |
頁數:284 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121247125 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:本書是教育部高等教育司大學計算機課程改革項目“理工類高校計算思維與大學計算機課程研究與教材建設”的成果之一。本書編寫團隊是“計算思維導論”項目的參研者,也是國家級優秀教學團隊和北京市優秀教學團隊“計算機公共課教學團隊”的主要成員。 在參加由哈爾濱工業大學戰德臣教授主持的大學計算機課程改革項目“理工類高校計算思維與大學計算機課程研究與教材建設”的研究中,本書編寫團隊逐步對計算思維的精髓和本質加深了理解。我們認為,計算機解題的核心是算法設計,算法設計是在良好數學素養的基礎上,對實際問題進行抽象和形式化,從而使用計算機來解決實際問題,而這恰恰正是培養計算思維的過程。 在計算學科領域,問題求解的核心是算法和系統。算法類問題強調的是數學建模及算法設計和分析。而程序設計語言則是實現算法的載體,語言只有滿足算法實現的需求,才能被認識和掌握,算法只有通過程序語言才能實現。因此,本書兼顧了程序設計語言和算法的學習。 本書在介紹C++語言的程序設計方法的基礎上,采用C++語言描述算法。C++語言是一種既支持面向過程程序設計,又支持面向對象程序設計的混合型語言,它獨特的面向對象特征,可以為面向對象技術提供全面支持,是描述算法的一種較為理想的語言。采用面向對象程序設計語言描述算法,不僅有利于學習算法設計和面向對象技術,也為上機實踐提高高級語言程序設計水平提供了方便。 全書共12章,分為上下篇。 上篇為高級語言程序設計基礎,包括第1∼8章。第1∼3章,介紹C++簡單程序設計,沒有學習過“C語言程序設計”的讀者可通過選學這部分內容,掌握C++程序設計基礎。第4∼8章系統介紹C++語言的封裝性、繼承性、多態性,以及模板的概念和使用。 下篇為算法分析與實現,包括第9∼12章。第9章是算法導論,主要介紹算法的基本概念、算法設計以及算法的性能度量所需要的數學基礎。第10章主要介紹C++語言描述的典型數據結構,包括線性表、棧和隊列、樹以及哈希表等基本概念和應用。第11章介紹經典算法的設計和分析技術,主要包括遞歸與分治法、貪心算法和動態規劃等的基本思想及應用。第12章介紹圖算法,主要包括基本的圖算法、最小生成樹和單源最短路徑等。 本書由高飛設計總體架構。第1、2、3章由薛艷明編寫,第4、5、6、7、8章由白霞編寫,第9、10章由高飛編寫,第11、12章由聶青編寫。全書由高飛、薛艷明統稿、定稿。 感謝哈爾濱工業大學戰德臣教授在計算思維研究中的貢獻,正是他所領導的研究團隊的研究成果給予了我們非同凡響的啟發和影響,這些智慧的結晶對本書的編寫具有重要意義的指導作用。感謝“理工類高校計算思維與大學計算機課程研究與教材建設”項目組所有參與學校的老師們對于本書的建議和幫助。感謝北京理工大學“計算機公共課教學團隊”中從事教學工作多年的各位同仁提出的寶貴建議。感謝電子工業出版社對本書的編寫給予熱情支持。 由于計算機算法和程序設計技術發展迅速,作者水平有限,書中的疏漏與不足在所難免,敬請廣大讀者和同仁不吝賜教,撥冗指正。 歡迎讀者對本書提出意見和建議。作者E-mail:gaofei@bit.edu.cn。
本書為教師提供相關教學資源,有需要者,請登錄華信教育資源網http://www.hxedu.com.cn,注冊之后進行下載。
作 者 |
內容簡介:本書是教育部高等教育司大學計算機課程改革項目“理工類高校計算思維與大學計算機課程研究與教材建設”的成果之一。本書兼顧程序設計語言和算法的學習,在介紹C++語言的程序設計方法的基礎上,采用C++程序設計語言描述算法。 全書共12章,分為上下篇。上篇講述高級語言程序設計基礎;下篇在介紹算法設計及算法的性能度量后,介紹C++語言描述的典型數據結構和經典算法的設計與分析技術。 本書內容由淺入深、循序漸進、案例豐富、通俗易懂、實用性強,可作為高等學校理工類計算機及相關專業學生的教材,也可供從事程序設計的工程人員參考。 |
目錄:上篇 高級語言程序設計基礎 第1章 C++語言概述 3 1.1 C++語言簡介 3 1.2 C++語言的基本組成 4 1.2.1 基本字符集 4 1.2.2 詞法記號 4 1.2.3 語句 4 1.2.4 標準函數庫 5 1.3 數據類型 5 1.3.1 常量 5 1.3.2 變量 8 1.4 C++的運算規則與表達式 9 1.4.1 C++語言的運算規則 9 1.4.2 算術運算符與算術表達式 10 1.4.3 自增、自減運算 11 1.4.4 賦值運算符和賦值表達式 11 1.4.5 組合賦值運算符與組合賦值表達式 12 1.4.6 關系運算符與關系表達式 13 1.4.7 邏輯運算符與邏輯表達式 13 1.4.8 條件運算符與條件表達式 15 1.5 C++程序的基本結構、編寫與實現 15 1.5.1 C++程序的基本結構 15 1.5.2 C++程序的編寫與實現 18 小結 19 習題1 20 第2章 函數 21 2.1 函數的聲明和調用 21 2.1.1 函數的聲明 21 2.1.2 函數的調用 22 2.2 函數間的參數傳遞 23 2.2.1 值傳遞 23 2.2.2 函數參數為指針類型 24 2.3 帶默認參數的函數 24 2.4 變量的存儲屬性 25 2.4.1 動態存儲方式與靜態存儲方式 25 2.4.2 局部變量的存儲屬性 26 2.4.3 全局變量的存儲屬性 28 小結 30 習題2 30 第3章 數組、指針和結構 32 3.1 數組 32 3.1.1 一維數組 32 3.1.2 多維數組 33 3.1.3 字符數組和字符串 35 3.2 指針 38 3.2.1 指針的概念 38 3.2.2 指針變量定義 39 3.2.3 指針運算 39 3.3 指針與數組 41 3.3.1 指向數組的指針 41 3.3.2 指向字符串的指針 44 3.3.3 指針數組和指向指針的指針 45 3.4 指針與函數 46 3.4.1 指向函數的指針 46 3.4.2 返回指針值的函數 48 3.5 結構類型 49 3.5.1 結構類型的概念與定義 49 3.5.2 結構變量的說明 50 3.5.3 引用結構中的成員 51 3.5.4 結構的初始化 51 3.6 結構數組 51 3.7 結構指針 53 3.8 在函數之間傳遞結構 54 小結 56 習題3 57 第4章 C++類及其對象的封裝性 58 4.1 從結構到類 58 4.1.1 復習結構 58 4.1.2 從結構提高到類 59 4.1.3 對象的創建和使用 63 4.2 類的成員函數 65 4.2.1 成員函數的定義方式 65 4.2.2 成員函數的訪問屬性 66 4.2.3 成員函數的執行效率 67 4.2.4 成員函數的存儲方式 69 4.3 構造函數 71 4.3.1 對象初始化的要求 71 4.3.2 構造函數的形式 72 4.3.3 拷貝構造函數 77 4.4 析構函數 79 4.4.1 析構函數的形式 79 4.4.2 調用順序 80 4.5 動態存儲 81 4.5.1 內存分配與釋放 81 4.5.2 避免內存泄漏 83 小結 84 習題4 85 第5章 引用、友元和重載 87 5.1 引用 87 5.1.1 引用的概念與理解 87 5.1.2 在函數通信中大顯身手 89 5.2 友元 93 5.2.1 友元的定義 93 5.2.2 友元函數 94 5.2.3 友元成員 95 5.2.4 友元類 97 5.3 重載 99 5.3.1 函數重載 99 5.3.2 運算符重載 103 小結 114 習題5 114 第6章 繼承 116 6.1 合成與繼承 116 6.2 單繼承 118 6.2.1 派生類的聲明和構成 118 6.2.2 派生類成員的訪問 119 6.2.3 派生類的構造函數和析構函數 126 6.3 多繼承 132 6.3.1 聲明多繼承的方法 132 6.3.2 多繼承派生類的構造函數 135 6.3.3 多繼承引起的二義性問題 138 6.3.4 虛基類 141 小結 146 習題6 147 第7章 多態 150 7.1 繼承呼喚多態 150 7.2 虛函數 151 7.2.1 虛函數的定義與調用 151 7.2.2 虛函數的特例 155 7.2.3 避免虛函數的誤用 156 7.3 純虛函數與抽象類 159 7.3.1 純虛函數 159 7.3.2 抽象類 160 小結 162 習題7 162 第8章 模板 164 8.1 模板的概念 164 8.2 函數模板 164 8.2.1 函數模板和模板函數 164 8.2.2 函數模板的使用 167 8.2.3 重載模板函數 170 8.3 類模板 170 8.3.1 模板和模板類 170 8.3.2 類模板的派生 173 小結 173 習題8 173 下篇 算法分析與設計 第9章 算法導引 177 9.1 算法基礎 177 9.1.1 算法 177 9.1.2 作為技術的算法 178 9.2 算法的設計和性能度量 179 9.2.1 函數的增長 179 9.2.2 標準記號與常用函數 182 小結 185 習題9 186 第10章 基本數據結構 187 10.1 線性表 187 10.1.1 線性表的邏輯結構 187 10.1.2 線性表的順序表示和實現 187 10.1.3 線性表的鏈式表示和實現 189 10.2 棧和隊列 192 10.2.1 棧 192 10.2.2 隊列 195 10.3 哈希表 199 10.3.1 哈希表簡介 199 10.3.2 哈希函數的構造方法 201 10.3.3 處理沖突的方法 203 10.3.4 哈希表的查找及其分析 205 10.4 樹 206 10.4.1 樹、二叉樹和森林的基本概念 206 10.4.2 二叉樹的遍歷和樹的遍歷 211 10.4.3 二叉樹的計數 212 小結 213 習題10 213 第11章 經典設計和分析技術 214 11.1 遞歸與分治法 214 11.1.1 二分檢索問題 214 11.1.2 遞歸的概念 215 11.1.3 分治法的基本思想 216 11.1.4 分治法的應用 217 11.2 貪心算法 228 11.2.1 活動選擇問題 228 11.2.2 貪心算法的基本思想 230 11.2.3 貪心算法的應用 231 11.3 動態規劃 234 11.3.1 鋼條切割問題 235 11.3.2 動態規劃的基本思想 237 11.3.3 動態規劃的應用 239 11.4 經典算法蘊涵的計算思維在其他學科的泛化 242 習題11 244 第12章 圖的算法 246 12.1 圖的基本算法 246 12.1.1 圖的表示 246 12.1.2 廣度優先搜索 258 12.1.3 深度優先搜索 259 12.1.4 拓撲排序 260 12.2 最小生成樹 262 12.2.1 最小生成樹的形成 262 12.2.2 Kruskal算法和Prim算法 263 12.3 單源最短路徑 269 12.3.1 有向無環圖的單源最短路徑 270 12.3.2 Dijkstra算法 272 12.4 圖算法蘊涵的計算思維在其他學科的泛化 274 習題12 275 參考文獻 277 |
序: |
|