第1章 “數(shù)據(jù)結(jié)構(gòu)與算法”教學(xué)實(shí)施方案
1.1 “數(shù)據(jù)結(jié)構(gòu)與算法”的理論體系
1.1.1 課程的基本定位
1.1.2 知識(shí)體系
1.2 “數(shù)據(jù)結(jié)構(gòu)與算法”學(xué)習(xí)重點(diǎn)
1.2.1 概論
1.2.2 線性表
1.2.3 棧與隊(duì)列
1.2.4 字符串
1.2.5 二叉樹
1.2.6 樹
1.2.7 圖
1.2.8 內(nèi)排序
1.2.9 文件與外排序
1.2.10 檢索
第1章 “數(shù)據(jù)結(jié)構(gòu)與算法”教學(xué)實(shí)施方案
1.1 “數(shù)據(jù)結(jié)構(gòu)與算法”的理論體系
1.1.1 課程的基本定位
1.1.2 知識(shí)體系
1.2 “數(shù)據(jù)結(jié)構(gòu)與算法”學(xué)習(xí)重點(diǎn)
1.2.1 概論
1.2.2 線性表
1.2.3 棧與隊(duì)列
1.2.4 字符串
1.2.5 二叉樹
1.2.6 樹
1.2.7 圖
1.2.8 內(nèi)排序
1.2.9 文件與外排序
1.2.10 檢索
1.2.11 索引
1.2.12 高級(jí)數(shù)據(jù)結(jié)構(gòu)
第2章 面向?qū)ο蟪绦蛟O(shè)計(jì)與C++概述
2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)概述
2.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì):類和對(duì)象
2.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)
2.2 C++編程概述
2.2.1 C++中的類和對(duì)象
2.2.2 對(duì)象的定義
2.2.3 類的成員函數(shù)
2.2.4 構(gòu)造函數(shù)和結(jié)構(gòu)函數(shù)
2.2.5 友元
2.2.6 類的繼承
2.3 重載
2.3.1 函數(shù)重載
2.3.2 運(yùn)算符重載
2.4 動(dòng)態(tài)存儲(chǔ)分配
習(xí)題
第3章 STL簡(jiǎn)介
3.1 泛型編程簡(jiǎn)介
3.1.1 泛型編程的需求
3.1.2 C++中模板的使用
3.2 STL容器簡(jiǎn)介
3.2.1 vector
3.2.2 deque
3.2.3 list
3.2.4 set和multiset
3.2.5 map和multimap
3.2.6 stack
3.2.7 queue
3.3 STL算法
3.3.1 STL算法簡(jiǎn)介
3.3.2 非變動(dòng)性算法
3.3.3 變動(dòng)性算法
3.3.4 變序型算法和排序算法
3.3.5 已排序區(qū)間算法
3.3.6 數(shù)值算法
3.4 STL迭代器
3.4.1 迭代器簡(jiǎn)介
3.4.2 迭代器類型
3.4.3 迭代器函數(shù)
3.4.4 迭代器配接器
3.5 文件流與輸入輸出
3.5.1 全局性的Stream對(duì)象
3.5.2 標(biāo)準(zhǔn)操作符<<和>>
3.5.3 標(biāo)準(zhǔn)10函數(shù)
習(xí)題
第4章 程序設(shè)計(jì)實(shí)踐
4.1 程序設(shè)計(jì)風(fēng)格
4.1.1 命名
4.1.2 語句
4.1.3 注釋
4.1.4 程序組織原則
4.1.5 文檔
4.1.6 實(shí)踐和原則
4.2 界面
4.3 測(cè)試、性能和可擴(kuò)展性
4.3.1 軟件測(cè)試基本概念
4.3.2 軟件測(cè)試原則
4.3.3 軟件測(cè)試策略
4.3.4 軟件測(cè)試方法
4.3.5 測(cè)試實(shí)例
4.3.6 性能和可擴(kuò)展性
習(xí)題
第5章 問題建模
5.1 數(shù)學(xué)模型和數(shù)學(xué)建模
5.1.1 數(shù)學(xué)模型
5.1.2 數(shù)學(xué)模型示例——雨中行問題
5.1.3 生產(chǎn)計(jì)劃問題——線性規(guī)劃模型
5.1.4 預(yù)測(cè)疾病的發(fā)展變化趨勢(shì)——馬爾可夫鏈模型
5.1.5 Buffon投針實(shí)驗(yàn)——蒙特卡羅方法
5.1.6 公交最優(yōu)路線查詢系統(tǒng)設(shè)計(jì)問題
5.2 設(shè)計(jì)模式
5.2.1 設(shè)計(jì)模式的概念
5.2.2 MVC的設(shè)計(jì)模式
5.2.3 設(shè)計(jì)模式舉例——工廠模式
習(xí)題
第6章 經(jīng)典算法設(shè)計(jì)
6.1 狀態(tài)空間
6.2 時(shí)間復(fù)雜度計(jì)算
6.2.1 算法時(shí)間復(fù)雜度分析
6.2.2 遞推方程求解
6.3 窮舉法
6.4 貪心法
6.5 遞歸和回溯
6.5.1 遞歸法
6.5.2 回溯法
6.5.3 回溯法的分支限界
6.6 搜索與剪枝
6.6.1 盲目搜索算法
6.6.2 剪枝
6.6.3 搜索的效率問題
6.7 分治法
6.7.1 分治策略
6.7.2 降低遞歸算法復(fù)雜性的途徑
6.8 動(dòng)態(tài)規(guī)劃
6.9 算法思想小結(jié)
習(xí)題
第7章 問題求解實(shí)踐
7.1 問題求解
7.2 線性結(jié)構(gòu)
7.2.1 數(shù)組元素循環(huán)右移k位——時(shí)空權(quán)衡
7.2.2 火車調(diào)度——棧的應(yīng)用
7.2.3 KMP模式匹配算法的應(yīng)用
7.3 樹形結(jié)構(gòu)
7.3.1 二叉樹遍歷算法框架在問題求解中的應(yīng)用
7.3.2 樹的應(yīng)用
7.3.3 選擇樹的應(yīng)用
7.3.4 樹與二叉樹的計(jì)數(shù)
7.4 線段樹
7.4.1 線段樹的定義及特征
7.4.2 線段樹的基本操作
7.5 圖的應(yīng)用
7.5.1 圖的抽象
7.5.2 圖的搜索
7.5.3 基于深度優(yōu)先的拓?fù)渑判?br />7.5.4 第二最短路徑
7.5.5 唯一最小生成樹
7.5.6 有向圖的強(qiáng)連通性問題
7.6 排序與檢索
7.6.1 統(tǒng)計(jì)逆序?qū)Φ臍w并思想
7.6.2 求兩個(gè)等長(zhǎng)有序序列中位數(shù)的二分思想
7.7 算法優(yōu)化
習(xí)題
第8章 數(shù)據(jù)結(jié)構(gòu)與算法技術(shù)應(yīng)用實(shí)例
8.1 搜索引擎中的數(shù)據(jù)結(jié)構(gòu)技術(shù)
8.1.1 概述
8.1.2 抓取系統(tǒng)
8.1.3 索引系統(tǒng)
8.1.4 檢索系統(tǒng)
8.2 在線評(píng)測(cè)算法實(shí)習(xí)范例
8.3 綜合實(shí)習(xí)范例
習(xí)題
第9章 試題及參考答案
9.1 期中考試
9.1.1 2007年期中考試試題
9.1.2 2007年期中考試參考答案
9.1.3 2008年期中考試試題
9.1.4 2008年期中考試參考答案
9.2 期末考試
9.2.1 2007年期末考試試題
9.2.2 2007年期末考試參考答案
9.2.3 2008年期末考試試題
9.2.4 2008年期末考試參考答案
9.3 高級(jí)專題考試
9.3.1 2007年高級(jí)專題考試試題
9.3.2 2007年高級(jí)專題考試參考答案
9.3.3 2008年高級(jí)專題考試試題
9.3.4 2008年高級(jí)專題考試參考答案
9.4 實(shí)習(xí)課程考試
9.4.1 2007年實(shí)習(xí)課考試試題
9.4.2 2007年實(shí)習(xí)課考試參考答案
9.4.3 2008年實(shí)習(xí)課考試試題
9.4.4 2008年實(shí)習(xí)課考試參考答案
參考文獻(xiàn)