注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計C/C++及其相關(guān)C程序設(shè)計的抽象思維

C程序設(shè)計的抽象思維

C程序設(shè)計的抽象思維

定 價:¥99.00

作 者: (美)羅伯特 著,閃四清 譯
出版社: 機械工業(yè)出版社
叢編項: 斯坦福大學(xué)經(jīng)典教材
標(biāo) 簽: VC++

ISBN: 9787111380740 出版時間: 2012-05-01 包裝: 平裝
開本: 16開 頁數(shù): 612 字數(shù):  

內(nèi)容簡介

  Eric S.Roberts所著的《C程序設(shè)計的抽象思維》是一本關(guān)于C語言的經(jīng)典圖書。本書共計17章,分為4部分,第一部分概述計算機導(dǎo)論課程中涉及的基本編程概念;第二部分討論遞歸算法,其中結(jié)合大量示例,有助于讀者輕松理解和掌握晦澀的概念;第三部分不僅介紹了用非遞歸算法實現(xiàn)的抽象數(shù)據(jù)類型,還提供了一些工具,有助于讀者理解數(shù)據(jù)抽象的概念;第四部分重點介紹采用遞歸算法實現(xiàn)的抽象數(shù)據(jù)類型。本書重點突出,全面講解了C語言的基本概念,深入剖析了具體的編程思路,揭示了獨特的編程策略和技術(shù)細節(jié)。本書旨在通過介紹編程過程中遇到的難點和問題,來拓寬視野。本書結(jié)合具體的示例代碼,由淺入深,介紹解決編程問題的策略和方法,有助于讀者快速入門C語言編程。同時,每一章后面都有配套的復(fù)習(xí)題和編程練習(xí),便于讀者理論練習(xí)實踐,通過編程實踐查漏補缺,溫故而知新?!禖程序設(shè)計的抽象思維》適合希望學(xué)習(xí)C語言的初學(xué)者和中高級程序員閱讀。

作者簡介

暫缺《C程序設(shè)計的抽象思維》作者簡介

圖書目錄

寫給學(xué)生
寫給教師
致謝
第一部分 預(yù)備知識
第1章 ANSI C概述
1.1 什么是C
1.2 C程序的結(jié)構(gòu)
1.2.1 注釋
1.2.2 包含的庫文件
1.2.3 程序級的定義
1.2.4 函數(shù)原型
1.2.5 主程序
1.2.6 函數(shù)定義
1.3 變量、值和類型
1.3.1 變量
1.3.2 命名規(guī)則
1.3.3 局部變量和全局變量
1.3.4 數(shù)據(jù)類型的概念
1.3.5 整數(shù)類型
1.3.6 浮點類型
1.3.7 文本類型
1.3.8 布爾類型
1.3.9 簡單輸入輸出
1.4 表達式
1.4.1 優(yōu)先級與結(jié)合性
1.4.2 表達式中的類型混合
1.4.3 整數(shù)除法和求余運算
1.4.4 類型轉(zhuǎn)換
1.4.5 賦值運算符
1.4.6 遞增與遞減運算符
1.4.7 布爾運算符
1.5 語句
1.5.1 簡單語句
1.5.2 塊
1.5.3 if語句
1.5.4 switch語句
1.5.5 while語句
1.5.6 for語句
1.6 函數(shù)
1.6.1 返回函數(shù)結(jié)果
1.6.2 函數(shù)定義和原型
1.6.3 函數(shù)調(diào)用過程的機制
1.6.4 逐步求精
1.7 總結(jié)
1.8 復(fù)習(xí)題
1.9 編程練習(xí)

第2章 C的數(shù)據(jù)類型
2.1 枚舉類型
2.1.1 枚舉類型的內(nèi)部表示
2.1.2 標(biāo)量類型
2.1.3 理解typedef
2.2 數(shù)據(jù)和內(nèi)存
2.2.1 位、字節(jié)、字
2.2.2 內(nèi)存地址
2.3 指針
2.3.1 把地址當(dāng)作數(shù)值
2.3.2 聲明指針變量
2.3.3 基本的指針運算
2.3.4 特殊指針NULL
2.3.5 傳遞引用
2.4 數(shù)組
2.4.1 聲明數(shù)組
2.4.2 數(shù)組選擇
2.4.3 分配的空間和利用的空間
2.4.4 把數(shù)組作為參數(shù)
2.4.5 初始化數(shù)組
2.4.6 多維數(shù)組
2.5 指針和數(shù)組
2.5.1 指針運算
2.5.2 指針的自加和自減
2.5.3 指針和數(shù)組的關(guān)系
2.6 記錄
2.6.1 定義一種新的結(jié)構(gòu)類型
2.6.2 聲明結(jié)構(gòu)變量
2.6.3 記錄選擇
2.6.4 初始化紀錄
2.6.5 記錄的指針
2.7 動態(tài)分配
2.7.1 類型void
2.7.2 對內(nèi)存限制的處理
2.7.3 動態(tài)數(shù)組
2.7.4 動態(tài)記錄
2.8 總結(jié)
2.9 復(fù)習(xí)題
2.10 編程練習(xí)

第3章 庫和接口
3.1 接口的概念
3.1.1 接口和實現(xiàn)
3.1.2 包和抽象
3.1.3 良好的接口設(shè)計規(guī)則
3.2 隨機數(shù)字
3.2.1 random.h接口的結(jié)構(gòu)
3.2.2 構(gòu)造一個客戶程序
3.2.3 ANSI中有關(guān)隨機數(shù)字的函數(shù)
3.2.4 實現(xiàn)random.c
3.3 字符串
3.3.1 字符的底層表示
3.3.2 數(shù)據(jù)類型string
3.3.3 ANSI字符串庫
3.3.4 接口strlib.h
3.4 標(biāo)準(zhǔn)的I/O庫
3.4.1 數(shù)據(jù)文件
3.4.2 在C中使用文件
3.4.3 標(biāo)準(zhǔn)文件
3.4.4 字符I/O
3.4.5 從輸入文件中重讀字符
3.4.6 更新文件
3.4.7 面向行的I/O
3.4.8 格式化的I/O
3.4.9 scanf函數(shù)
3.5 其他ANSI庫
3.6 總結(jié)
3.7 復(fù)習(xí)題
3.8 編程練習(xí)

第二部分 遞歸和算法分析
第4章 遞歸入門
4.1 一個簡單的遞歸示例
4.2 階乘函數(shù)
4.2.1 Fact的遞歸公式
4.2.2 追蹤遞歸過程
4.2.3 遞歸跳躍的信任
4.3 費波那契函數(shù)
4.3.1 計算費波那契序列
4.3.2 增進實現(xiàn)遞歸的信心
4.3.3 遞歸實現(xiàn)的效率
4.3.4 不應(yīng)該責(zé)備遞歸
4.4 其他遞歸示例
4.4.1 探測回文
4.4.2 二分查找
4.4.3 交互遞歸
4.5 遞歸的思考
4.5.1 保持整體觀
4.5.2 避免常見的陷阱
4.6 總結(jié)
4.7 復(fù)習(xí)題
4.8 編程練習(xí)

第5章 遞歸過程
5.1 漢諾塔
5.1.1 分解問題
5.1.2 尋找遞歸策略
5.1.3 證實遞歸策略
5.1.4 編碼解決方案
5.1.5 追蹤遞歸過程
5.2 產(chǎn)生排列
5.3 遞歸的繪圖應(yīng)用
5.3.1 繪圖庫
5.3.2 電腦藝術(shù)示例
5.3.3 不規(guī)則碎片形
5.4 總結(jié)
5.5 復(fù)習(xí)題
5.6 編程練習(xí)

第6章 回溯算法
6.1 用遞歸回溯解決迷宮問題
6.1.1 右手規(guī)則
6.1.2 尋找遞歸方法
6.1.3 識別簡單情景
6.1.4 迷宮解決方案算法編碼
6.1.5 確信解決方案可以正確運行
6.2 回溯與對策
6.2.1 拿子游戲
6.2.2 一般化的雙人游戲程序
6.2.3 最小最大策略
6.2.4 實現(xiàn)最小最大化算法
6.2.5 在具體的游戲中采用一般化策略
6.3 總結(jié)
6.4 復(fù)習(xí)題
6.5 編程練習(xí)

第7章 算法分析
7.1 排序問題
7.1.1 選擇排序算法
7.1.2 性能的經(jīng)驗度量
7.1.3 分析選擇排序的性能
7.2 計算復(fù)雜度
7.2.1 大O符號
7.2.2 大O的標(biāo)準(zhǔn)簡化
7.2.3 排序算法的計算復(fù)雜度
7.2.4 根據(jù)代碼結(jié)構(gòu)預(yù)測計算復(fù)雜度
7.2.5 最差情況復(fù)雜度與平均情況復(fù)雜度
7.2.6 大O的正式定義
7.3 遞歸幫助
7.3.1 分治策略的威力
7.3.2 合并兩個數(shù)組
7.3.3 合并排序算法
7.3.4 合并排序的計算復(fù)雜度
7.3.5 比較N2和NlogN的性能
7.4 標(biāo)準(zhǔn)復(fù)雜度類型
7.5 快速排序算法
7.5.1 分割數(shù)組
7.5.2 分析快速排序的性能
7.6 數(shù)學(xué)歸納法
7.7 總結(jié)
7.8 復(fù)習(xí)題
7.9 編程練習(xí)

第三部分 數(shù)據(jù)抽象
第8章 抽象數(shù)據(jù)類型
8.1 棧
8.1.1 棧的基本概念
8.1.2 棧和函數(shù)調(diào)用
8.1.3 棧和袖珍計算器
8.2 定義棧的ADT
8.2.1 定義棧抽象的類型
8.2.2 不透明類型
8.2.3 定義stack.h接口
8.3 在應(yīng)用中使用棧
8.4 實現(xiàn)棧抽象
8.4.1 定義具體類型
8.4.2 實現(xiàn)棧操作
8.4.3 不透明類型的優(yōu)點
8.4.4 改進stack.c的實現(xiàn)
8.5 定義一個scannerADT
8.5.1 封裝狀態(tài)的危險
8.5.2 抽象數(shù)據(jù)類型作為封裝狀態(tài)的替代
8.5.3 實現(xiàn)掃描器抽象
8.6 總結(jié)
8.7 復(fù)習(xí)題
8.8 編程練習(xí)

第9章 效率與ADT
9.1 編輯器緩沖區(qū)的概念
9.2 定義緩沖區(qū)抽象
9.2.1 接口buffer.h中的函數(shù)
9.2.2 為編輯器應(yīng)用編寫代碼
9.3 用數(shù)組實現(xiàn)編輯器
9.3.1 定義具體類型
9.3.2 實現(xiàn)緩沖區(qū)的操作
9.3.3 數(shù)組實現(xiàn)的計算復(fù)雜度
9.4 用棧實現(xiàn)編輯器
9.4.1 定義基于棧的緩沖區(qū)的具體結(jié)構(gòu)
9.4.2 實現(xiàn)緩沖區(qū)的操作
9.4.3 比較計算復(fù)雜度
9.5 用鏈表實現(xiàn)編輯器
9.5.1 鏈表的概念
9.5.2 設(shè)計鏈表數(shù)據(jù)結(jié)構(gòu)
9.5.3 使用鏈表表示緩沖區(qū)
9.5.4 鏈表緩沖區(qū)中的插入
9.5.5 鏈表緩沖區(qū)中的刪除
9.5.6 鏈表表示中的光標(biāo)移動
9.5.7 鏈表的習(xí)慣用法
9.5.8 完成緩沖區(qū)實現(xiàn)
9.5.9 鏈表緩沖區(qū)的計算復(fù)雜度
9.5.10 雙向鏈表
9.5.11 時間空間的權(quán)衡
9.6 總結(jié)
9.7 復(fù)習(xí)題
9.8 編程練習(xí)

第10章 線性結(jié)構(gòu)
10.1 ?;仡?br /> 10.2 隊列
10.2.1 接口queue.h的結(jié)構(gòu)
10.2.2 基于數(shù)組的隊列實現(xiàn)
10.2.3 隊列的鏈表實現(xiàn)
10.3 使用隊列的仿真
10.3.1 仿真與模型
10.3.2 排隊模型
10.3.3 離散時間
10.3.4 仿真時間中的事件
10.3.5 實現(xiàn)仿真
10.4 總結(jié)
10.5 復(fù)習(xí)題
10.6 編程練習(xí)

第11章 符號表
11.1 定義符號表抽象
11.1.1 選擇值和鍵的類型
11.1.2 表示未定義項
11.1.3 符號表接口的初始版本
11.2 散列
11.2.1 實現(xiàn)散列表策略
11.2.2 選擇散列函數(shù)
11.2.3 確定桶的數(shù)量
11.3 初級接口的限制
11.4 使用函數(shù)作為數(shù)據(jù)
11.4.1 一個一般測繪函數(shù)
11.4.2 聲明函數(shù)指針與函數(shù)類
11.4.3 實現(xiàn)PlotFunction
11.4.4 qsort函數(shù)
11.5 映射函數(shù)
11.5.1 映射符號表中的所有項
11.5.2 實現(xiàn)MapSymbolTable
11.5.3 向回調(diào)函數(shù)傳遞客戶數(shù)據(jù)
11.6 迭代器
11.6.1 使用迭代器
11.6.2 定義迭代器接口
11.6.3 實現(xiàn)符號表的迭代器抽象
11.7 命令分派表
11.8 總結(jié)
11.9 復(fù)習(xí)題
11.10 編程練習(xí)

第四部分 遞歸數(shù)據(jù)
第12章 遞歸列表
12.1 鏈表的遞歸表述
12.2 定義抽象鏈表類型
12.2.1 不變類型
12.2.2 操縱鏈表結(jié)構(gòu)的函數(shù)
12.2.3 連接多個鏈表
12.2.4 不變類型間的內(nèi)部共享
12.3 使用鏈表表示大整數(shù)
12.3.1 bigint.h 接口
12.3.2 表示類型bigIntADT
12.3.3 實現(xiàn)bigint包
12.3.4 使用bigint.h包
12.4 總結(jié)
12.5 復(fù)習(xí)題
12.6 編程練習(xí)

第13章 樹
13.1 家譜樹
13.1.1 描述樹的術(shù)語
13.1.2 樹的遞歸特性
13.1.3 用C語言表示家譜樹
13.2 二叉搜索樹
13.2.1 使用二叉搜索樹的底層動機
13.2.2 在二叉搜索樹中查找節(jié)點
13.2.3 在二叉搜索樹中插入新節(jié)點
13.2.4 樹的遍歷
13.3 平衡樹
13.3.1 樹的平衡策略
13.3.2 舉例說明AVL的思想
13.3.3 單旋轉(zhuǎn)
13.3.4 雙旋轉(zhuǎn)
13.3.5 實現(xiàn)AVL算法
13.4 為二叉搜索樹定義一般化接口
13.4.1 允許用戶定義節(jié)點結(jié)構(gòu)
13.4.2 一般化用作鍵的類型
13.4.3 刪除節(jié)點
13.4.4 實現(xiàn)二叉搜索樹包
13.4.5 使用二叉樹實現(xiàn)symtab.h接口
13.5 總結(jié)
13.6 復(fù)習(xí)題
13.7 編程練習(xí)

第14章 表達式樹
14.1 解釋器概述
14.2 表達式的抽象結(jié)構(gòu)
14.2.1 表達式的遞歸定義
14.2.2 多義性
14.2.3 表達式樹
14.2.4 定義表達式的抽象接口
14.3 定義具體表達式類型
14.3.1 聯(lián)合類型
14.3.2 使用標(biāo)記的聯(lián)合表示表達式
14.3.3 可視化具體表示
14.3.4 實現(xiàn)構(gòu)建器和選擇器函數(shù)
14.4 語法分析表達式
14.4.1 語法分析和語法
14.4.2 不考慮優(yōu)先級的語法分析
14.4.3 在語法分析器中加入優(yōu)先級
14.5 計算表達式
14.6 總結(jié)
14.7 復(fù)習(xí)題
14.8 編程練習(xí)

第15章 集合
15.1 為數(shù)學(xué)抽象的集合
15.1.1 成員資格
15.1.2 集合運算
15.1.3 集合恒等式
15.2 設(shè)計集合接口
15.2.1 定義元素類型
15.2.2 編寫set.h 接口
15.2.3 字符集合
15.2.4 使用指針集合來避免重復(fù)
15.3 實現(xiàn)集合包
15.4 設(shè)計多態(tài)迭代器
15.4.1 泛化迭代器函數(shù)的原型
15.4.2 在迭代器實現(xiàn)中加入多態(tài)性
15.4.3 導(dǎo)出聚集類型
15.4.4 編碼迭代器包
15.4.5 foreach的習(xí)慣用法
15.5 提高整型集合的效率
15.5.1 特征向量
15.5.2 壓縮的位數(shù)組
15.5.3 位運算符
15.5.4 使用位操作符實現(xiàn)特征向量
15.5.5 實現(xiàn)高級集合操作
15.5.6 使用混合實現(xiàn)
15.6 總結(jié)
15.7 復(fù)習(xí)題
15.8 編程練習(xí)

第16章 圖
16.1 圖的結(jié)構(gòu)
16.1.1 有向圖和無向圖
16.1.2 路徑和環(huán)
16.1.3 連通性
16.2 圖的實現(xiàn)策略
16.2.1 使用鄰接列表表示連接
16.2.2 使用鄰接矩陣表示連接
16.3 擴展圖抽象
16.3.1 將數(shù)據(jù)與節(jié)點和圖關(guān)聯(lián)
16.3.2 顯式弧
16.3.3 迭代和圖
16.3.4 分層抽象
16.3.5 基于集合的圖接口
16.4 圖的遍歷
16.4.1 深度優(yōu)先遍歷
16.4.2 廣度優(yōu)先搜索
16.5 尋找最短路徑
16.6 總結(jié)
16.7 復(fù)習(xí)題
16.8 編程練習(xí)

第17章 Java的未來
17.1 面向?qū)ο蠓独?br /> 17.1.1 面向?qū)ο缶幊痰臍v史
17.1.2 對象、類和方法
17.1.3 類層次與繼承
17.2 Java入門
17.2.1 Web結(jié)構(gòu)
17.2.2 applet
17.2.3 執(zhí)行Java applet
17.3 Java的結(jié)構(gòu)
17.3.1 Java的語法
17.3.2 Java中的原子類型
17.3.3 定義新類
17.3.4 構(gòu)造器方法
17.3.5 this關(guān)鍵字
17.3.6 定義方法
17.3.7 定義子類
17.4 Java中的預(yù)定義類
17.4.1 String類
17.4.2 Hashtable類
17.4.3 原子類型的對象包裝器
17.4.4 Vector類
17.4.5 Stack類
17.5 創(chuàng)建交互applet的工具
17.5.1 組件與容器
17.5.2 action方法
17.5.3 用于畫圖形的簡單applet
17.5.4 更進一步
17.6 總結(jié)
17.7 復(fù)習(xí)題
17.8 編程練習(xí)
……

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號