程式設計與數據結構

程式設計與數據結構

《程式設計與數據結構》是2018年北京航空航天大學出版社出版的圖書,作者是周立功。

基本介紹

  • 中文名:程式設計與數據結構 
  • 作者:周立功
  • 出版社:北京航空航天大學出版社
  • ISBN:9787512428706
內容簡介,作者簡介,目錄,

內容簡介

本書是C程式設計的進階書籍,在介紹C語言基礎知識的同時,重點強調了軟體設計的思想:共性與可變性分析、面向對象的編程思想等,並提供了詳盡的範例程式。使讀者體會到思想的重要性,面向對象編程並不局限於特定語言,使用C語言同樣可以進行面向對象的編程。本書分為4章:第1章,主要介紹C語言的基礎知識,並提及了共性與可變性分析;第2章,主要介紹C語言的進階用法,特別是結構體及函式指針;第3章,主要介紹算法與數據結構,包含鍊表、哈希表、佇列等;第4章,主要介紹面向對象的編程思想,包含面向對象的基礎概念、虛函式的妙用、狀態機設計等。
本書既可作為高等院校本科、高職高專電子信息工程、自動化、機電一體化及計算機專業的教材,也可作為電子及計算機編程愛好者的自學用書,還可作為軟體開發工程技術人員的參考書。

作者簡介

周立功:周立功單片機發展有限公司總經理,江西理工大學機電學院自動化教研室教授,碩士生導師,嵌入式系統技術方向學科帶頭人,中國計算機學會高級會員,中國計算機學會嵌入式系統學會(微機專委)理事,中國單片機學會理事。從1981年開始從事單片機與嵌入式系統的套用、開發與推廣。在教學實踐過程中,為了培養具有較好工程實踐能力"零適應期"的大學生,周立功創立了"3+1"嵌入式系統套用創新教學模式。

目錄

第1章 程式設計基礎………………………………………………………………… 1
1.1 思想的力量 ……………………………………………………………………… 1
1.1.1 過程主題 …………………………………………………………………… 1
1.1.2 思維差異 …………………………………………………………………… 2
1.1.3 語言的鴻溝…………………………………………………………………… 3
1.2 變數與指針 ……………………………………………………………………… 12
1.2.1 變 量 ……………………………………………………………………… 12
1.2.2 值的表示形式 ……………………………………………………………… 16
1.2.3 數據的輸入/輸出 …………………………………………………………… 23
1.3 指針變數與指針的指針…………………………………………………………… 28
1.3.1 聲明與訪問 ………………………………………………………………… 28
1.3.2 變數的訪問 ………………………………………………………………… 33
1.3.3 指針的指針 ………………………………………………………………… 36
1.4 簡化表達式 ……………………………………………………………………… 38
1.4.1 邏輯表達式 ………………………………………………………………… 39
1.4.2 綜合表達式 ………………………………………………………………… 40
1.4.3 條件表達式 ………………………………………………………………… 42
1.5 共性與可變性分析 ……………………………………………………………… 42
1.5.1 分析方法 …………………………………………………………………… 42
1.5.2 建立抽象 …………………………………………………………………… 44
1.5.3 建立接口 …………………………………………………………………… 44
1.5.4 實現接口 …………………………………………………………………… 48
1.5.5 使用接口 …………………………………………………………………… 50
1.6 數組與指針 ……………………………………………………………………… 51
1.6.1 數 組 ……………………………………………………………………… 51
1.6.2 數組的訪問形式 …………………………………………………………… 57
1.6.3 泛型編程 …………………………………………………………………… 60
1.7 數組的數組與指針 ……………………………………………………………… 69
1.7.1 指向數組的指針 …………………………………………………………… 69
1.7.2 二維數組 …………………………………………………………………… 71
1.7.3 將二維數組作為函式參數 …………………………………………………… 73
1.8 字元串與指針 …………………………………………………………………… 77
1.8.1 字元常量 …………………………………………………………………… 77
1.8.2 字元串常量 ………………………………………………………………… 81
1.8.3 指針數組 …………………………………………………………………… 92
1.9 動態分配記憶體 …………………………………………………………………… 99
1.9.1 malloc( )函式 ……………………………………………………………… 100
1.9.2 calloc( )函式 ……………………………………………………………… 101
1.9.3 free( )函式 ………………………………………………………………… 101
1.9.4 realloc( )函式 ……………………………………………………………… 103
第2章 程式設計技術……………………………………………………………… 105
2.1 函式指針與指針函式 …………………………………………………………… 105
2.1.1 函式指針 …………………………………………………………………… 105
2.1.2 指針函式 …………………………………………………………………… 108
2.1.3 回調函式 …………………………………………………………………… 112
2.1.4 函式指針數組 ……………………………………………………………… 119
2.2 結構體 ………………………………………………………………………… 120
2.2.1 記憶體對齊 …………………………………………………………………… 121
2.2.2 內含基本數據類型 ………………………………………………………… 124
2.2.3 內置函式指針 ……………………………………………………………… 130
2.2.4 嵌套結構體 ………………………………………………………………… 134
2.2.5 結構體數組 ………………………………………………………………… 138
2.3 棧與函式返回…………………………………………………………………… 142
2.3.1 堆 棧 …………………………………………………………………… 142
2.3.2 入棧與出棧 ………………………………………………………………… 143
2.3.3 函式的調用與返回 ………………………………………………………… 144
2.4 棧 ADT ………………………………………………………………………… 146
2.4.1 不完全類型 ………………………………………………………………… 146
2.4.2 抽象數據類型 ……………………………………………………………… 150
2.4.3 開閉原則(OCP) …………………………………………………………… 160
第3章 算法與數據結構…………………………………………………………… 165
3.1 算法問題 ……………………………………………………………………… 165
3.1.1 排 序 …………………………………………………………………… 165
3.1.2 搜 索 …………………………………………………………………… 167
3.1.3 O 記法 …………………………………………………………………… 169
3.2 單向鍊表 ……………………………………………………………………… 175
3.2.1 存值與存址 ………………………………………………………………… 175
3.2.2 數據與p_next分離 ………………………………………………………… 184
3.2.3 接 口 …………………………………………………………………… 190
3.3 雙向鍊表 ……………………………………………………………………… 201
3.3.1 添加結點 …………………………………………………………………… 205
3.3.2 刪除結點 …………………………………………………………………… 208
3.3.3 遍歷鍊表 …………………………………………………………………… 210
3.4 疊代器模式 …………………………………………………………………… 213
3.4.1 疊代器與容器 ……………………………………………………………… 213
3.4.2 疊代器接口 ………………………………………………………………… 214
3.4.3 算法的接口 ………………………………………………………………… 219
3.5 哈希表 ………………………………………………………………………… 225
3.5.1 問 題 …………………………………………………………………… 225
3.5.2 哈希表的類型 ……………………………………………………………… 229
3.5.3 哈希表的實現 ……………………………………………………………… 231
3.6 佇列 ADT ……………………………………………………………………… 240
3.6.1 建立抽象 …………………………………………………………………… 240
3.6.2 建立接口 …………………………………………………………………… 240
3.6.3 實現與使用接口 …………………………………………………………… 243
第4章 面向對象編程……………………………………………………………… 252
4.1 OO 思想 ……………………………………………………………………… 252
4.1.1 職責轉移 …………………………………………………………………… 252
4.1.2 OO 機制 …………………………………………………………………… 254
4.1.3 OO 收益 …………………………………………………………………… 255
4.2 類與對象 ……………………………………………………………………… 256
4.2.1 對 象 …………………………………………………………………… 256
4.2.2 類 ………………………………………………………………………… 258
4.2.3 封 裝 …………………………………………………………………… 262
4.3 繼承與多態 …………………………………………………………………… 268
4.3.1 抽 象 …………………………………………………………………… 268
4.3.2 繼 承 …………………………………………………………………… 269
4.3.3 職責驅動設計 ……………………………………………………………… 272
4.3.4 多態性 …………………………………………………………………… 276
4.4 虛函式 ………………………………………………………………………… 279
4.4.1 二叉樹 …………………………………………………………………… 279
4.4.2 表達式算術樹 ……………………………………………………………… 280
4.4.3 虛函式 …………………………………………………………………… 288
4.5 狀態機 ………………………………………………………………………… 292
4.5.1 有限狀態機 ………………………………………………………………… 292
4.5.2 State模式 ………………………………………………………………… 296
4.5.3 動作類 …………………………………………………………………… 306
4.6 框架與重用 …………………………………………………………………… 308
4.6.1 框 架 …………………………………………………………………… 308
4.6.2 契 約 …………………………………………………………………… 309
4.6.3 建立契約 …………………………………………………………………… 310
4.6.4 框架與重構 ………………………………………………………………… 311
參 考 文 獻…………………………………………………………………………… 313

相關詞條

熱門詞條

聯絡我們