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

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

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

定 價:¥99.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

寫給學(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 浮點(diǎn)類型
1.3.7 文本類型
1.3.8 布爾類型
1.3.9 簡單輸入輸出
1.4 表達(dá)式
1.4.1 優(yōu)先級與結(jié)合性
1.4.2 表達(dá)式中的類型混合
1.4.3 整數(shù)除法和求余運(yùn)算
1.4.4 類型轉(zhuǎn)換
1.4.5 賦值運(yùn)算符
1.4.6 遞增與遞減運(yùn)算符
1.4.7 布爾運(yùn)算符
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)用過程的機(jī)制
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 基本的指針運(yùn)算
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 指針運(yùn)算
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 初始化紀(jì)錄
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 接口和實(shí)現(xiàn)
3.1.2 包和抽象
3.1.3 良好的接口設(shè)計(jì)規(guī)則
3.2 隨機(jī)數(shù)字
3.2.1 random.h接口的結(jié)構(gòu)
3.2.2 構(gòu)造一個客戶程序
3.2.3 ANSI中有關(guān)隨機(jī)數(shù)字的函數(shù)
3.2.4 實(shí)現(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 費(fèi)波那契函數(shù)
4.3.1 計(jì)算費(fèi)波那契序列
4.3.2 增進(jìn)實(shí)現(xiàn)遞歸的信心
4.3.3 遞歸實(shí)現(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 證實(shí)遞歸策略
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 確信解決方案可以正確運(yùn)行
6.2 回溯與對策
6.2.1 拿子游戲
6.2.2 一般化的雙人游戲程序
6.2.3 最小最大策略
6.2.4 實(shí)現(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)驗(yàn)度量
7.1.3 分析選擇排序的性能
7.2 計(jì)算復(fù)雜度
7.2.1 大O符號
7.2.2 大O的標(biāo)準(zhǔn)簡化
7.2.3 排序算法的計(jì)算復(fù)雜度
7.2.4 根據(jù)代碼結(jié)構(gòu)預(yù)測計(jì)算復(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 合并排序的計(jì)算復(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 棧和袖珍計(jì)算器
8.2 定義棧的ADT
8.2.1 定義棧抽象的類型
8.2.2 不透明類型
8.2.3 定義stack.h接口
8.3 在應(yīng)用中使用棧
8.4 實(shí)現(xiàn)棧抽象
8.4.1 定義具體類型
8.4.2 實(shí)現(xiàn)棧操作
8.4.3 不透明類型的優(yōu)點(diǎn)
8.4.4 改進(jìn)stack.c的實(shí)現(xiàn)
8.5 定義一個scannerADT
8.5.1 封裝狀態(tài)的危險
8.5.2 抽象數(shù)據(jù)類型作為封裝狀態(tài)的替代
8.5.3 實(shí)現(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ù)組實(shí)現(xiàn)編輯器
9.3.1 定義具體類型
9.3.2 實(shí)現(xiàn)緩沖區(qū)的操作
9.3.3 數(shù)組實(shí)現(xiàn)的計(jì)算復(fù)雜度
9.4 用棧實(shí)現(xiàn)編輯器
9.4.1 定義基于棧的緩沖區(qū)的具體結(jié)構(gòu)
9.4.2 實(shí)現(xiàn)緩沖區(qū)的操作
9.4.3 比較計(jì)算復(fù)雜度
9.5 用鏈表實(shí)現(xiàn)編輯器
9.5.1 鏈表的概念
9.5.2 設(shè)計(jì)鏈表數(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ū)實(shí)現(xiàn)
9.5.9 鏈表緩沖區(qū)的計(jì)算復(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 棧回顧
10.2 隊(duì)列
10.2.1 接口queue.h的結(jié)構(gòu)
10.2.2 基于數(shù)組的隊(duì)列實(shí)現(xiàn)
10.2.3 隊(duì)列的鏈表實(shí)現(xiàn)
10.3 使用隊(duì)列的仿真
10.3.1 仿真與模型
10.3.2 排隊(duì)模型
10.3.3 離散時間
10.3.4 仿真時間中的事件
10.3.5 實(shí)現(xiàn)仿真
10.4 總結(jié)
10.5 復(fù)習(xí)題
10.6 編程練習(xí)

第11章 符號表
11.1 定義符號表抽象
11.1.1 選擇值和鍵的類型
11.1.2 表示未定義項(xiàng)
11.1.3 符號表接口的初始版本
11.2 散列
11.2.1 實(shí)現(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 實(shí)現(xiàn)PlotFunction
11.4.4 qsort函數(shù)
11.5 映射函數(shù)
11.5.1 映射符號表中的所有項(xiàng)
11.5.2 實(shí)現(xiàn)MapSymbolTable
11.5.3 向回調(diào)函數(shù)傳遞客戶數(shù)據(jù)
11.6 迭代器
11.6.1 使用迭代器
11.6.2 定義迭代器接口
11.6.3 實(shí)現(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 實(shí)現(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 使用二叉搜索樹的底層動機(jī)
13.2.2 在二叉搜索樹中查找節(jié)點(diǎn)
13.2.3 在二叉搜索樹中插入新節(jié)點(diǎn)
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 實(shí)現(xiàn)AVL算法
13.4 為二叉搜索樹定義一般化接口
13.4.1 允許用戶定義節(jié)點(diǎn)結(jié)構(gòu)
13.4.2 一般化用作鍵的類型
13.4.3 刪除節(jié)點(diǎn)
13.4.4 實(shí)現(xiàn)二叉搜索樹包
13.4.5 使用二叉樹實(shí)現(xiàn)symtab.h接口
13.5 總結(jié)
13.6 復(fù)習(xí)題
13.7 編程練習(xí)

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

第15章 集合
15.1 為數(shù)學(xué)抽象的集合
15.1.1 成員資格
15.1.2 集合運(yùn)算
15.1.3 集合恒等式
15.2 設(shè)計(jì)集合接口
15.2.1 定義元素類型
15.2.2 編寫set.h 接口
15.2.3 字符集合
15.2.4 使用指針集合來避免重復(fù)
15.3 實(shí)現(xiàn)集合包
15.4 設(shè)計(jì)多態(tài)迭代器
15.4.1 泛化迭代器函數(shù)的原型
15.4.2 在迭代器實(shí)現(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 位運(yùn)算符
15.5.4 使用位操作符實(shí)現(xiàn)特征向量
15.5.5 實(shí)現(xiàn)高級集合操作
15.5.6 使用混合實(shí)現(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 圖的實(shí)現(xiàn)策略
16.2.1 使用鄰接列表表示連接
16.2.2 使用鄰接矩陣表示連接
16.3 擴(kuò)展圖抽象
16.3.1 將數(shù)據(jù)與節(jié)點(diǎn)和圖關(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 更進(jìn)一步
17.6 總結(jié)
17.7 復(fù)習(xí)題
17.8 編程練習(xí)
……

本目錄推薦

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