數(shù)據(jù)結(jié)構與算法分析新視角 版權信息
- ISBN:9787121280849
- 條形碼:9787121280849 ; 978-7-121-28084-9
- 裝幀:暫無
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
數(shù)據(jù)結(jié)構與算法分析新視角 本書特色
數(shù)據(jù)結(jié)構是高等學校計算機及其相關專業(yè)的核心課程,是計算機程序設計的基礎。本書按照“像外行一樣思考,像專家一樣實踐”的解決問題的思維方法,列舉大量實際或工程案例,從具體問題中引出抽象概念,運用類比、圖形化描述等各種方式,對經(jīng)典數(shù)據(jù)結(jié)構內(nèi)容做深入淺出的介紹。在介紹數(shù)據(jù)結(jié)構和算法的基本概念和算法分析方法的基礎之上,從軟件開發(fā)的角度,通過應用背景或知識背景介紹、數(shù)據(jù)分析、函數(shù)設計、算法設計、測試調(diào)試等環(huán)節(jié),分別對順序表、鏈表、棧、隊列、串、數(shù)組、樹、圖等基本類型的數(shù)據(jù)結(jié)構進行了分析和討論;介紹數(shù)據(jù)的典型操作方法,如數(shù)據(jù)排序方法和查找方法;介紹常見的如遞歸法、分治法、動態(tài)規(guī)劃、貪心法等經(jīng)典算法。
數(shù)據(jù)結(jié)構與算法分析新視角 內(nèi)容簡介
數(shù)據(jù)結(jié)構是高等學校計算機及其相關專業(yè)的核心課程,是計算機程序設計的基礎。本書按照“像外行一樣思考,像專家一樣實踐”的解決問題的思維方法,列舉大量實際或工程案例,從具體問題中引出抽象概念,運用類比、圖形化描述等各種方式,對經(jīng)典數(shù)據(jù)結(jié)構內(nèi)容做深入淺出的介紹。在介紹數(shù)據(jù)結(jié)構和算法的基本概念和算法分析方法的基礎之上,從軟件開發(fā)的角度,通過應用背景或知識背景介紹、數(shù)據(jù)分析、函數(shù)設計、算法設計、測試調(diào)試等環(huán)節(jié),分別對順序表、鏈表、棧、隊列、串、數(shù)組、樹、圖等基本類型的數(shù)據(jù)結(jié)構進行了分析和討論;介紹數(shù)據(jù)的典型操作方法,如數(shù)據(jù)排序方法和查找方法;介紹常見的如遞歸法、分治法、動態(tài)規(guī)劃、貪心法等經(jīng)典算法。
數(shù)據(jù)結(jié)構與算法分析新視角 目錄
第1章 緒論 11.1 從編程說起 11.2 程序要處理的數(shù)據(jù) 51.3 數(shù)據(jù)結(jié)構的引入 111.4 數(shù)據(jù)結(jié)構的基本概念 131.4.1 數(shù)據(jù)結(jié)構基本術語 131.4.2 數(shù)據(jù)結(jié)構的三個要素 131.5 如何設計算法 161.5.1 算法的定義及表示方法 161.5.2 算法設計與函數(shù)設計的關系 171.5.3 軟件設計描述方法 181.5.4 算法設計的一般步驟 191.6 如何評價算法的優(yōu)劣 211.6.1 算法的設計要求 211.6.2 算法效率的度量方法 221.7 算法性能的事前分析方法 231.7.1 問題的規(guī)模與算法的策略 231.7.2 算法效率的上限與下限 251.7.3 漸進的上限——算法的時間 復雜度 281.7.4 算法時間復雜度的綜合討論 291.7.5 算法的空間效率分析方法 331.8 算法性能綜合考量 371.9 本章小結(jié) 38習題 38第2章 結(jié)點邏輯關系為線性的結(jié)構——線性表 412.1 從邏輯結(jié)構角度看線性表 412.1.1 實際問題中的線性關系 412.1.2 線性表的邏輯結(jié)構 422.2 線性表的存儲結(jié)構方法之一——順序表 432.2.1 順序表的存儲結(jié)構設計 432.2.2 順序表的運算 462.2.3 順序存儲結(jié)構的討論 532.3 線性表的存儲結(jié)構方法之二——鏈表 532.3.1 單鏈表的存儲 562.3.2 單鏈表的運算 602.3.3 單鏈表的討論 782.3.4 循環(huán)鏈表 782.3.5 雙向鏈表 812.3.6 鏈表小結(jié) 862.4 線性表的應用舉例 872.4.1 逆序輸出單鏈表結(jié)點值 872.4.2 一元多項式的相加 882.5 順序表和鏈表的比較 952.6 本章小結(jié) 96習題 97第3章 運算受限的線性表——棧和隊列 1003.1 棧——按照先入后出的方式管理的線性表 1003.1.1 棧處理模式的引入 1003.1.2 棧的邏輯結(jié)構 1043.1.3 棧的存儲結(jié)構設計 1063.1.4 棧的操作 1073.1.5 各種棧結(jié)構的比較 1233.1.6 棧的應用舉例 1233.2 隊列——按照先入先出方式管理的線性表 1323.2.1 隊列處理模式的引入 1333.2.2 隊列的邏輯結(jié)構 1363.2.3 隊列的順序存儲結(jié)構 1373.2.4 順序隊列的基本操作 1483.2.5 隊列的鏈式存儲結(jié)構 1523.2.6 鏈隊列的基本操作 1533.2.7 各種隊列結(jié)構的比較 1603.2.8 隊列的應用舉例 1613.3 本章小結(jié) 171習題 172第4章 內(nèi)容特殊的線性表——多維數(shù)組與字符串 1754.1 多維數(shù)組 1754.1.1 數(shù)組的概念 1754.1.2 數(shù)組的存儲結(jié)構 1774.2 矩陣的壓縮存儲 1814.2.1 對稱矩陣的壓縮存儲 1824.2.2 三角矩陣的壓縮存儲 1834.2.3 對角矩陣的壓縮存儲 1834.2.4 稀疏矩陣的壓縮存儲 1854.3 字符串 1894.3.1 字符串的定義 1894.3.2 字符串的存儲結(jié)構 1904.3.3 字符串的查找——模式匹配 1954.4 本章小結(jié) 211習題 213第5章 結(jié)點邏輯關系分層次的非線性結(jié)構——樹 2165.1 實際問題中的樹 2165.2 樹的邏輯結(jié)構 2195.2.1 樹的定義和基本術語 2195.2.2 樹的操作定義 2225.3 樹的存儲結(jié)構 2225.3.1 樹的連續(xù)存儲方式 2235.3.2 樹的鏈式存儲方式 2245.4 二叉樹的邏輯結(jié)構 2265.4.1 二叉樹的概念 2295.4.2 二叉樹的基本性質(zhì) 2305.4.3 二叉樹的操作定義 2315.5 二叉樹的存儲結(jié)構及實現(xiàn) 2315.5.1 二叉樹的順序結(jié)構 2325.5.2 二叉樹的鏈式存儲 結(jié)構——二叉鏈表 2355.5.3 建立動態(tài)二叉鏈表 2365.6 二叉樹結(jié)點的查找 問題——樹的遍歷 2405.6.1 樹的廣度優(yōu)先遍歷 2425.6.2 樹的深度優(yōu)先遍歷 2445.6.3 樹的遍歷的應用 2555.7 樹的應用 2595.7.1 表達式樹 2595.7.2 線索二叉樹 2605.7.3 哈夫曼樹及哈夫曼編碼 2655.8 廣義表 2785.8.1 廣義表的定義 2795.8.2 廣義表的存儲 2815.8.3 廣義表的基本運算 2875.9 本章小結(jié) 293習題 295第6章 結(jié)點邏輯關系任意的非線性結(jié)構——圖 2996.1 實際問題中的圖及抽象 2996.2 圖的邏輯結(jié)構 3046.2.1 圖的定義和基本術語 3046.2.2 圖的操作定義 3076.3 圖的存儲結(jié)構及實現(xiàn) 3086.3.1 圖的數(shù)組表示法1—— 鄰接矩陣 3086.3.2 圖的數(shù)組表示法2—— 邊集數(shù)組 3106.3.3 圖的鏈表表示法1——鄰接表 3116.3.4 圖的鏈表表示法2—— 十字鏈表 3166.3.5 圖的鏈表表示法3——鄰接多重表 3176.3.6 圖各種存儲結(jié)構的歸結(jié)比較 3196.4 圖的基本操作 3206.4.1 鄰接矩陣的操作 3206.4.2 鄰接表的操作 3226.5 圖的頂點查找問題——圖的遍歷 3286.5.1 圖的廣度優(yōu)先遍歷bfs 3296.5.2 圖的深度優(yōu)先遍歷dfs 3346.5.3 圖的遍歷小結(jié) 3406.6 圖的經(jīng)典應用——圖中的樹問題 3406.6.1 生成樹 3426.6.2 *小生成樹mst 3436.6.3 求*小生成樹算法1——prim 算法 3446.6.4 求*小生成樹算法2——kruskal算法 3496.6.5 生成樹算法小結(jié) 3566.7 圖的經(jīng)典應用——*短路徑問題 3576.7.1 *短路徑問題的引入 3576.7.2 單源*短路徑算法——dijkstra算法 3596.7.3 各頂點對間*短路徑算法——floyd算法 3646.7.4 *短路徑問題小結(jié) 3696.8 圖的經(jīng)典應用——活動頂點與活動邊的問題 3706.8.1 圖的活動頂點排序問題的引入 3706.8.2 aov網(wǎng)與拓撲排序——活動頂點排序問題 3736.8.3 aoe網(wǎng)與關鍵路徑——活動邊*長問題 3786.8.4 活動頂點與活動邊問題小結(jié) 3906.9 本章小結(jié) 390習題 391第7章 數(shù)據(jù)的處理方法——排序技術 3977.1 概述 3977.1.1 排序的基本概念 3977.1.2 排序算法的分類 3997.2 插入排序 3997.2.1 直接插入排序 3997.2.2 希爾排序 4027.3 交換排序 4047.3.1 冒泡排序 4047.3.2 快速排序 4067.4 選擇排序 4097.4.1 簡單選擇排序 4107.4.2 堆排序 4117.5 歸并排序 4157.6 分配排序 4187.6.1 桶排序 4187.6.2 基數(shù)排序 4217.7 各種排序算法的比較 4247.8 本章小結(jié) 427習題 428第8章 數(shù)據(jù)的處理——索引與查找技術 4318.1 索引的基本概念 4338.1.1 索引的定義 4338.1.2 索引的邏輯特征 4348.1.3 索引的主要操作 4358.2 線性索引技術 4358.2.1 稠密索引 4358.2.2 分塊索引 4368.2.3 多重表 4378.2.4 倒排表 4398.3 樹形索引 4418.3.1 二叉排序樹 4418.3.2 b樹 4488.4 查找概述 4528.4.1 查找的基本概念 4528.4.2 查找算法的性能 4538.5 線性表的查找技術 4538.5.1 順序查找 4538.5.2 有序表查找 4548.5.3 索引查找 4598.6 樹表的查找技術 4618.6.1 二叉排序樹 4618.6.2 b樹 4628.6.3 在非數(shù)值有序表上的查找——字典樹 4628.7 散列表的查找技術 4648.7.1 散列概述 4658.7.2 散列函數(shù)的設計 4678.7.3 處理沖突的方法 4698.7.4 散列查找的性能分析 4738.8 本章小結(jié) 474習題 476第9章 經(jīng)典算法 4799.1 遞歸算法 4799.1.1 遞歸的概念及要素 4799.1.2 遞歸的應用場景 4819.1.3 遞歸的計算機實現(xiàn) 4829.1.4 遞歸方法特點分析 4839.1.5 遞歸算法實例 4859.1.6 遞歸小結(jié) 4879.2 分治算法 4879.2.1 分治是什么 4879.2.2 分治法的適用條件 4889.2.3 分治問題的類型 4889.2.4 分治法小結(jié) 4909.3 動態(tài)規(guī)劃 4919.3.1 什么是動態(tài)規(guī)劃 4919.3.2 動態(tài)規(guī)劃的解題方法 4939.3.3 動態(tài)規(guī)劃解題實例 4959.3.4 動態(tài)規(guī)劃小結(jié) 5009.4 貪心算法 5019.4.1 貪心算法是什么 5019.
展開全部
數(shù)據(jù)結(jié)構與算法分析新視角 作者簡介
周幸妮,西安電子科技大學副教授,長期從事“數(shù)據(jù)結(jié)構”、“C程序設計語言”等課程的教學工作,著有《C程序設計》等教材。