算法與數(shù)據(jù)結(jié)構(gòu)
定 價:26 元
- 作者:陳媛 ,等 著
- 出版時間:2012/1/1
- ISBN:9787302268420
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312JA
- 頁碼:257
- 紙張:膠版紙
- 版次:1
- 開本:16開
《21世紀高等學(xué)校規(guī)劃教材·計算機科學(xué)與技術(shù)·算法與數(shù)據(jù)結(jié)構(gòu):Java語言描述》介紹了算法與數(shù)據(jù)結(jié)構(gòu)方面的基本知識,重點闡述基本數(shù)據(jù)結(jié)構(gòu)及算法在程序開發(fā)中的應(yīng)用方法!21世紀高等學(xué)校規(guī)劃教材·計算機科學(xué)與技術(shù)·算法與數(shù)據(jù)結(jié)構(gòu):Java語言描述》主要內(nèi)容有數(shù)據(jù)結(jié)構(gòu)及算法的基本概念和術(shù)語、java面向?qū)ο笾R、java語言的數(shù)據(jù)類型及其算法描述要點、java語言中抽象數(shù)據(jù)類型的實現(xiàn)、線性表、棧和隊列、樹、查找、排序。
《21世紀高等學(xué)校規(guī)劃教材·計算機科學(xué)與技術(shù)·算法與數(shù)據(jù)結(jié)構(gòu):Java語言描述》給出的所有算法和程序采用java語言描述并調(diào)試通過。本書注重數(shù)據(jù)結(jié)構(gòu)的實用性,每個數(shù)據(jù)結(jié)構(gòu)章節(jié)都有工程應(yīng)用實例;注重可讀性和適用性,書中附有大量的圖表、程序,使讀者能正確、直觀地理解問題;每章有學(xué)習要點、習題和上機實習題,既便于教學(xué),又便于自學(xué)。
《21世紀高等學(xué)校規(guī)劃教材·計算機科學(xué)與技術(shù)·算法與數(shù)據(jù)結(jié)構(gòu):Java語言描述》的讀者要求具有java語言基礎(chǔ),特別適合普通高校本?茖W(xué)生使用,也可作為其他程序類課程的輔導(dǎo)教材。
教學(xué)目標明確,注重理論與實踐的結(jié)合 教學(xué)方法靈活,培養(yǎng)學(xué)生自主學(xué)習的能力 教學(xué)內(nèi)容先進,反映了計算機學(xué)科的最新發(fā)展 教學(xué)模式完善,提供配套的教學(xué)資源解決方案
前言
關(guān)于數(shù)據(jù)結(jié)構(gòu)
計算機的日益發(fā)展,其應(yīng)用早已不局限于簡單的數(shù)值運算,而涉及問題的分析、數(shù)據(jù)結(jié)構(gòu)框架的設(shè)計以及插入、刪除、排序、查找等復(fù)雜的非數(shù)值處理和操作。數(shù)據(jù)結(jié)構(gòu)的學(xué)習就是為以后利用計算機高效地開發(fā)非數(shù)值處理的計算機程序打下堅實的理論、方法和技術(shù)基礎(chǔ)。
算法與數(shù)據(jù)結(jié)構(gòu)旨在分析研究計算機加工的數(shù)據(jù)對象的特性,以便選擇適當?shù)臄?shù)據(jù)結(jié)構(gòu)和存儲結(jié)構(gòu),從而使建立在其上的解決問題的算法達到最優(yōu)。
關(guān)于結(jié)構(gòu)安排
全書共分為8章,每章主要內(nèi)容如下。
第1章: 緒論。主要介紹了數(shù)據(jù)結(jié)構(gòu)和算法的基本概念和術(shù)語、Java面向?qū)ο笾R、Java語言的數(shù)據(jù)類型及其算法描述要點、Java語言驗證算法的方法、Java中抽象數(shù)據(jù)類型的規(guī)格與實現(xiàn)。
第2章: 線性表。主要介紹線性表的邏輯結(jié)構(gòu)、線性表的順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)、數(shù)組存儲結(jié)構(gòu)、線性表的應(yīng)用實例。
第3章: 棧和隊列。主要介紹棧與隊列的基本概念及存儲結(jié)構(gòu)、棧與隊列的應(yīng)用實例。
第4章: 遞歸。介紹遞歸的概念及設(shè)計方法、遞歸與回溯、遞歸技術(shù)應(yīng)用實例。
第5章: 樹。主要介紹樹及二叉樹的基本概念及存儲結(jié)構(gòu)、二叉樹的應(yīng)用——哈夫曼樹及編碼。
第6章: 圖。主要介紹圖的基本概念及存儲結(jié)構(gòu)、圖的遍歷、圖的生成樹和最小生成樹、最短路徑、有向無環(huán)圖的應(yīng)用實例。
第7章: 查找。主要介紹靜態(tài)查找、動態(tài)查找、哈希表查找。
第8章: 排序。主要介紹插入排序、交換排序、選擇排序、歸并排序、基數(shù)排序、外部排序。
本書第1、6章由陳媛教授編寫,第2、5章由何波副教授編寫,第3、4章由盧玲編寫,第7、8章由涂飛編寫。全書由陳媛教授統(tǒng)稿。
本書特點
全書給出的所有算法和程序采用Java語言描述并調(diào)試通過; 非常注重數(shù)據(jù)結(jié)構(gòu)的實用性,每個數(shù)據(jù)結(jié)構(gòu)章節(jié)都有工程應(yīng)用實例; 注重教材的可讀性和適用性,書中附有大量的圖表、程序,使讀者能正確、直觀地理解問題; 書中每章有學(xué)習要點、習題和上機實習題,既便于教學(xué),又便于自學(xué)。
本書內(nèi)容和結(jié)構(gòu)體現(xiàn)了教學(xué)改革成果。全書由重慶市精品課程“數(shù)據(jù)結(jié)構(gòu)”重慶理工大學(xué)課程組的教師集體編寫完成。作者都是長期在高校從事數(shù)據(jù)結(jié)構(gòu)教學(xué)的一線教師,有豐富的教學(xué)經(jīng)驗和軟件開發(fā)能力。作者從多年的教學(xué)經(jīng)驗和多項教研課題的研究成果,構(gòu)建了數(shù)據(jù)結(jié)構(gòu)概念建立和編程思想培養(yǎng)的框架體系,總結(jié)提煉了學(xué)習本課程的重難點和解決方法,大部分樣例都經(jīng)過整理和組織,以便更好地理解掌握。
為了方便教學(xué),我們開發(fā)了課程網(wǎng)站和練習系統(tǒng),使用本書的院?赏ㄟ^Email cy@cqut.edu.cn向作者索取練習系統(tǒng)。
本書適用對象
本書的讀者要求具有Java語言基礎(chǔ); 特別適合普通高校本?茖W(xué)生使用,可作為計算機專業(yè)、信息專業(yè)及其他相關(guān)專業(yè)的本?平滩,也是廣大參加自學(xué)考試的人員和軟件工作者的參考資料; 本書既可作為數(shù)據(jù)結(jié)構(gòu)、算法與數(shù)據(jù)結(jié)構(gòu)等課程的教材,也可作為其他程序類課程輔導(dǎo)教材。
由于水平有限,本書可能會有不盡如人意及錯漏之處,敬請讀者批評指正。
編者
2010年12月
第1章 緒論
1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念
1.1.1 數(shù)據(jù)結(jié)構(gòu)的研究對象
1.1.2 數(shù)據(jù)結(jié)構(gòu)的基本概念和基本術(shù)語
1.2 算法與數(shù)據(jù)結(jié)構(gòu)
1.2.1 算法的概念
1.2.2 描述算法的方法
1.2.3 算法分析
1.3 java面向?qū)ο笾R
1.3.1 類及類的使用
1.3.2 程序入口及對象的使用
1.3.3 構(gòu)造方法
1.3.4 抽象類、接口
1.3.5 多態(tài)
1.3.6 包和類庫的使用
1.3.7 equals方法、this、super
1.4 java語言的數(shù)據(jù)類型及其算法描述要點
1.4.1 java語言的基本數(shù)據(jù)類型概述
1.4.2 java語言的數(shù)組和類數(shù)據(jù)類型
1.4.3 java語言的arraylist
1.4.4 java語言的函數(shù)
1.4.5 用java語言驗證算法的方法
1.5 java中adt規(guī)格與實現(xiàn)
1.6 一個java應(yīng)用實例
1.7 學(xué)習數(shù)據(jù)結(jié)構(gòu)的意義和方法
學(xué)習要點
習題
上機練習
第2章 線性表
2.1 線性表的邏輯結(jié)構(gòu)
2.1.1 線性表的定義
2.1.2 線性表的運算
2.1.3 線性表的抽象數(shù)據(jù)類型定義
2.2 線性表的順序存儲結(jié)構(gòu)--順序表
2.2.1 順序表的定義
2.2.2 順序存儲結(jié)構(gòu)的優(yōu)缺點
2.2.3 順序表上的基本運算
2.3 線性表的鏈式存儲結(jié)構(gòu)--鏈表
2.3.1 單鏈表的定義
2.3.2 單鏈表的java表示
2.3.3 單鏈表的基本運算
2.3.4 循環(huán)鏈表和雙向鏈表
2.3.5 java對鏈表的支持
2.4 數(shù)組
2.4.1 數(shù)組的定義與操作
2.4.2 數(shù)組的順序存儲結(jié)構(gòu)
2.4.3 矩陣的壓縮存儲方法
2.5 字符串
2.5.1 字符串的定義與操作
2.5.2 字符串的存儲結(jié)構(gòu)
2.5.3 字符串基本操作的實現(xiàn)
2.6 線性表的應(yīng)用實例
2.7 工程應(yīng)用實例
學(xué)習要點
習題
上機練習
第3章 棧和隊列
3.1 棧
3.1.1 棧的基本概念
3.1.2 棧的抽象數(shù)據(jù)類型
3.1.3 棧的順序存儲結(jié)構(gòu)
3.1.4 棧的鏈式存儲結(jié)構(gòu)
3.2 棧的應(yīng)用實例
3.2.1 表達式求值
3.2.2 棧與函數(shù)調(diào)用
3.2.3 棧在回溯法中的應(yīng)用
3.2.4 java對棧的支持
3.3 隊列
3.3.1 隊列的基本概念
3.3.2 隊列的抽象數(shù)據(jù)類型
3.3.3 隊列的順序存儲結(jié)構(gòu)
3.3.4 隊列的鏈式存儲結(jié)構(gòu)
3.4 隊列的應(yīng)用實例
3.4.1 舞伴問題
3.4.2 模擬打印隊列的管理
3.5 工程應(yīng)用實例
3.5.1 棧的應(yīng)用
3.5.2 隊列的應(yīng)用
學(xué)習要點
習題
上機練習
第4章 遞歸
4.1 遞歸的概念及設(shè)計方法
4.1.1 遞歸模型
4.1.2 遞歸的執(zhí)行過程
4.1.3 遞歸設(shè)計
4.1.4 遞歸到非遞歸的轉(zhuǎn)換
4.2 遞歸與回溯
4.3 遞歸技術(shù)應(yīng)用實例
4.3.1 漢諾塔問題
4.3.2 組合數(shù)學(xué):委員會問題
4.4 遞歸評價
4.5 工程應(yīng)用實例
學(xué)習要點
習題
上機練習
第5章 樹
5.1 樹
5.1.1 樹的概念
5.1.2 樹的基本操作
5.2 二叉樹
5.2.1 二叉樹的概念
5.2.2 二叉樹的性質(zhì)
5.2.3 二叉樹的存儲結(jié)構(gòu)及其實現(xiàn)
5.3 二叉樹的遍歷
5.3.1 遞歸的遍歷算法
5.3.2 二叉樹遍歷操作應(yīng)用舉例
5.4 線索二叉樹
5.4.1 線索二叉樹的定義
5.4.2 遍歷線索二叉樹
5.5 一般樹的表示和遍歷
5.5.1 一般樹的表示
5.5.2 二叉樹與樹之間的轉(zhuǎn)換
5.5.3 一般樹的遍歷
5.6 哈夫曼樹及其應(yīng)用
5.6.1 哈夫曼樹
5.6.2 哈夫曼樹的應(yīng)用
5.7 工程應(yīng)用實例
學(xué)習要點
習題
上機練習
第6章 圖
6.1 圖的定義和術(shù)語
6.2 圖的存儲結(jié)構(gòu)
6.2.1 鄰接矩陣
6.2.2 圖的鄰接表
6.2.3 十字鏈表
6.2.4 邊集數(shù)組
6.3 圖的遍歷
6.3.1 深度優(yōu)先搜索
6.3.2 廣度優(yōu)先搜索
6.4 圖的連通性
6.4.1 無向圖的連通分量
6.4.2 生成樹和最小代價生成樹
6.5 有向無環(huán)圖及應(yīng)用
6.5.1 拓撲排序
6.5.2 關(guān)鍵路徑
6.6 最短路徑及應(yīng)用
6.6.1 單源最短路徑
6.6.2 每個頂點之間的最短路徑
6.7 工程應(yīng)用實例
學(xué)習要點
習題
上機練習
第7章 查找
7.1 基本概念與術(shù)語
7.2 靜態(tài)查找表
7.2.1 靜態(tài)查找表結(jié)構(gòu)
7.2.2 順序查找
7.2.3 有序表的折半查找
7.2.4 有序表的插值查找和斐波那契查找
7.2.5 分塊查找
7.3 動態(tài)查找表
7.3.1 二叉排序樹
7.3.2 平衡二叉樹
7.3.3 b-樹和b+樹
7.4 哈希表查找
7.4.1 哈希表與哈希方法
7.4.2 常用的哈希函數(shù)
7.4.3 處理沖突的方法
7.4.4 哈希表的查找分析
學(xué)習要點
習題
上機練習
第8章 排序
8.1 基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 希爾排序
8.3 交換排序
8.3.1 冒泡排序
8.3.2 快速排序
8.4 選擇排序
8.4.1 簡單選擇排序
8.4.2 堆排序
8.5 歸并排序
8.6 *基數(shù)排序
8.7 *外部排序簡介
8.7.1 外存信息的存取
8.7.2 外部排序的基本方法
學(xué)習要點
習題
上機練習
參考文獻