《數(shù)據結構與算法綜合實踐》結合企業(yè)實用軟件開發(fā)技術,結合實際案例和應用環(huán)境,對棧、隊列、串、二叉樹、阿等重要數(shù)據結構和算法中知識單元進行了分析和設計,并在重點訓練每一個知識單元編程實踐的基礎上,結合Cc++、MFcDialog可視化界面和GDI繪圖等實用開發(fā)技術,通過一個游戲項目貫穿數(shù)據結構與算法核心知識,采用迭代開發(fā)思路進行每一個功能開發(fā),既應用線性結構知識進行案例編程實踐,又應用非線性結構知識進行案例重構,完整訓練核心知識單元在企業(yè)真實項目中的應用。
《數(shù)據結構與算法綜合實踐》概念清楚,重點突出,強調實戰(zhàn)訓練,各環(huán)節(jié)可操作性強,并配有針對性的實訓項目,便于講授和學習。
《數(shù)據結構與算法綜合實踐》既可作為獨立開設的“數(shù)據結構與算法綜合實驗”相關實踐課程的教材,也可作為數(shù)據結構及相關理論課程的實驗教材,同時適合作為高等院�!皵�(shù)據結構與算法”實踐教學參考用書,也可供從事計算機工程與應用的廣大科技工作者參考。
1 概述
1.1 實踐目標
1.2 內容安排
1.3 開發(fā)環(huán)境
第一部 分技術專題
2 棧與表達式求值實踐
2.1 實驗目標
2.2 實驗任務
2.3 分析和設計
2.3.1 表達式組成
2.3.2 核心算法
2.3.3 棧(stack)
2.4 編碼實現(xiàn)
2.4.1 創(chuàng)建工程
2.4.2 定義棧(鏈表)
2.4.3 表達式解析
2.4.4 比較操作符
2.4.5 表達式計算
2.4.6 最終結果
2.5 調試和運行
習題
3 隊列與停車場管理程序實踐
3.1 實驗目標
3.2 實驗任務
3.3 分析和設計
3.3.1 數(shù)據結構
3.3.2 業(yè)務流程
3.3.3 技術分析
3.4 編碼實現(xiàn)
3.4.1 創(chuàng)建工程
3.4.2 定義數(shù)據結構
3.4.3 車輛入場
3.4.4 車輛離開
3.4.5 查看停車場
3.5 調試和運行
習題
4 串與字符串替換程序實踐
4.1 實驗目標
4.2 實驗任務
4.3 分析和設計
4.3.1 數(shù)據結構
4.3.2 業(yè)務流程
4.3.3 定位子串在主串的位置
4.3.4 字符串的替換
4.4 編碼實現(xiàn)
4.4.1 創(chuàng)建工程
4.4.2 定義串的存儲結構
4.4.3 串的基本操作
4.4.4 主函數(shù)
4.4.5 擴展優(yōu)化
4.5 調試和運行
習題
5 二叉樹與赫夫曼圖片壓縮實踐
5.1 實驗目標
5.2 實驗任務
5.3 分析和設計
5.3.1 Huffman樹
5.3.2 Huffman編碼
5.3.3 壓縮過程
5.3.4 壓縮與解壓
5.3.5 文件操作
5.4 編碼實現(xiàn)
5.4.1 創(chuàng)建工程
5.4.2 讀取原文件
5.4.3 生成Huffman樹
5.4.4 生成Huffman編碼
5.4.5 壓縮原文件
5.4.6 保存壓縮文件
5.4.7 擴展功能
5.5 調試和運行
習題
6 圖與景區(qū)信息管理系統(tǒng)實踐
6.1 實驗目標
6.2 實驗任務
6.3 分析和設計
6.3.1 程序設計
6.3.2 界面設計
6.3.3 算法設計
6.3.4 數(shù)據結構設計
6.4 編碼實現(xiàn)
6.4.1 創(chuàng)建工程
6.4.2 定義圖
6.4.3 查詢景點信息
6.5 調試和運行
習題
7 深度優(yōu)先搜索與旅游景點導航實踐
7.1 實驗目標
7.2 實驗任務
7.3 分析和設計
7.4 編碼實現(xiàn)
7.4.1 導人工程
7.4.2 遍歷景區(qū)景點圖(一條路線)
7.4.3 優(yōu)化遍歷算法(多條路線)
7.5 調試和運行
習題
8 Dijkstra算法與搜索最短路徑實踐
8.1 實驗目標
8.2 實驗任務
8.3 分析和設計
8.4 編碼實現(xiàn)
8.4.1 導人工程
8.4.2 搜索最短路徑
8.4.3 查詢最短路徑
8.5 調試和運行
習題
9 最小生成樹與鋪設電路規(guī)劃實踐
9.1 實驗目標
9.2 實驗任務
9.3 分析和設計
9.4 編碼實現(xiàn)
9.4.1 導人工程
9.4.2 構建最小生成樹
9.4.3 查詢鋪設電路規(guī)劃圖
9.5 調試和運行
習題
第二部 分綜合實踐
10 線性結構與連連看游戲綜合實踐
10.1 實踐目標
10.2 需求分析
10.2.1 項目簡介
10.2.2 游戲規(guī)則
10.2.3 功能簡介
10.3 系統(tǒng)設計
10.3.1 界面設計
10.3.2 程序結構設計
10.3.3 數(shù)據結構設計
10.3.4 算法設計
10.4 創(chuàng)建工程
10.4.1 功能需求
10.4.2 設計思路
10.4.3 編碼實現(xiàn)
10.5 主界面
10.5.1 功能需求
10.5.2 設計思路
10.5.3 編碼實現(xiàn)
10.6 開始游戲
10.6.1 功能需求
10.6.2 設計思路
10.6.3 編碼實現(xiàn)
10.7 消子判斷
10.7.1 功能需求
10.7.2 設計思路
10.7.3 編碼實現(xiàn)
10.8 判斷勝負
10.8.1 功能需求
10.8.2 設計思路
10.8.3 編碼實現(xiàn)
11 非線性結構與連連看游戲綜合實踐
11.1 實踐目標
11.2 需求分析
11.3 系統(tǒng)設計
11.3.1 程序結構設計
11.3.2 數(shù)據結構設計
11.3.3 開局與重排算法
11.3.4 消子判斷算法
11.3.5 消子算法
11.3.6 勝負判斷算法
11.4 創(chuàng)建工程
11.5 主界面
11.6 開始游戲
11.6.1 功能需求
11.6.2 設計思路
11.6.3 編碼實現(xiàn)
11.7 相鄰同色消子
11.7.1 功能需求
1L 7.2 設計思路
11.7.3 編碼實現(xiàn)
11.8 消子判斷
11.8.1 功能需求
11.8.2 設計思路
11.8.3 編碼實現(xiàn)
11.9 判斷勝負
11.9.1 功能需求
11.9.2 設計思路
11.9.3 編碼實現(xiàn)
11.10 擴展功能
11.10.1 提示
11.10.2 重排
12 附錄
12.1 參考資料
12.2 C++編碼規(guī)范
12.2.1 基本原則
12.2.2 命名標準
12.2.3 注釋規(guī)范
12.2.4 編碼規(guī)范
12.2.5 排版規(guī)范
12.3 MFC應用程序介紹