出版時(shí)間:2008-8 出版社:人民郵電出版社 作者:王學(xué)軍 編 頁(yè)數(shù):243
Tag標(biāo)簽:無(wú)
前言
“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)及相關(guān)專業(yè)的重要專業(yè)基礎(chǔ)課程。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)結(jié)構(gòu)的內(nèi)容也需要做適當(dāng)調(diào)整,重點(diǎn)要提高學(xué)生的實(shí)踐能力。本書就是以計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生必須掌握的知識(shí)為核心,以高等職業(yè)教育所培養(yǎng)的學(xué)生應(yīng)該具備的能力為依據(jù),以突出實(shí)踐性和實(shí)用性為目的,進(jìn)行設(shè)計(jì)編寫的?! ”緯帉懭藛T都是長(zhǎng)期從事高等職業(yè)教育計(jì)算機(jī)教學(xué)的一線教師,具有豐富的教學(xué)和實(shí)踐經(jīng)驗(yàn),同時(shí)編寫組中還有在企業(yè)從事過(guò)Java軟件開發(fā)的工程人員?! ”緯闹饕厣缦?。 (1)內(nèi)容選取合理,組織得當(dāng)。本書根據(jù)高等職業(yè)教育計(jì)算機(jī)人才培養(yǎng)目標(biāo)組織內(nèi)容,理論部分以夠用為度,重點(diǎn)突出實(shí)踐性和實(shí)用性。每章都由實(shí)例引入,并且配備一定數(shù)量的擴(kuò)展實(shí)例(其中包括一部分工程實(shí)例),有助于對(duì)理論知識(shí)的消化、理解?! ?2)算法實(shí)現(xiàn)方式先進(jìn),適合學(xué)生學(xué)習(xí)。本書采用Java語(yǔ)言作為數(shù)據(jù)結(jié)構(gòu)算法的實(shí)現(xiàn)語(yǔ)言,體現(xiàn)面向?qū)ο笳Z(yǔ)言的特色,使數(shù)據(jù)結(jié)構(gòu)的相關(guān)算法實(shí)現(xiàn)更加方便,教學(xué)效果更加突出?! ?3)定位準(zhǔn)確、恰當(dāng),適合高職高專院校學(xué)生使用。本書主要面向高職高專院校學(xué)生,目的是把學(xué)生培養(yǎng)成高等技術(shù)應(yīng)用型生產(chǎn)一線人才?! ?4)突出適合高等職業(yè)教育的任務(wù)驅(qū)動(dòng)方法。本書所有內(nèi)容都以學(xué)習(xí)任務(wù)的方式給出,幫助教師把握在教學(xué)中應(yīng)該注意的重點(diǎn)、難點(diǎn)?! ”緯ㄗh學(xué)時(shí)為70~90學(xué)時(shí),其中理論學(xué)時(shí)為50~60學(xué)時(shí),實(shí)踐環(huán)節(jié)學(xué)時(shí)為20~30學(xué)時(shí)。授課時(shí)應(yīng)以任務(wù)驅(qū)動(dòng)為主,理論結(jié)合實(shí)際,突出實(shí)例在本課程教學(xué)中的作用。
內(nèi)容概要
本書共分10章,重點(diǎn)介紹3種基本數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用,主要內(nèi)容包括緒論、Java語(yǔ)言基礎(chǔ)知識(shí)、線性表、棧和隊(duì)列、數(shù)組和廣義表、串、樹與二叉樹、圖、查找和排序等。本書采用Java語(yǔ)言描述數(shù)據(jù)結(jié)構(gòu)中的算法,每章配有一定數(shù)量的具有完整程序的實(shí)例,并在最后提供難易適中、與所講理論知識(shí)相配套的習(xí)題,幫助讀者學(xué)習(xí)和理解理論知識(shí)?! ”緯嫦蚋叩嚷殬I(yè)院校學(xué)生,語(yǔ)言通俗易懂,每章都由實(shí)例引入,理論和實(shí)踐緊密結(jié)合。全書重點(diǎn)突出基本理論和基本算法的實(shí)現(xiàn)過(guò)程,強(qiáng)調(diào)實(shí)踐性和實(shí)用性。另外本書配有電子教案和習(xí)題解答,可從人民郵電出版社的網(wǎng)站(www.ptpress.com.cn)下載?! ”緯勺鳛楦呗毟邔T盒S?jì)算機(jī)及相關(guān)專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程的教材,也可作為各類計(jì)算機(jī)培訓(xùn)班的教材。
書籍目錄
第1章 緒論 1.1 數(shù)據(jù)結(jié)構(gòu)的3種基本結(jié)構(gòu) 1.1.1 線性結(jié)構(gòu) 1.1.2 層次結(jié)構(gòu) 1.1.3 網(wǎng)狀結(jié)構(gòu) 1.2 數(shù)據(jù)結(jié)構(gòu)研究的主要問(wèn)題 1.3 算法及描述 1.3.1 算法與算法特性 1.3.2 算法表示 1.4 算法效率分析 習(xí)題 第2章 Java語(yǔ)言基礎(chǔ)知識(shí) 2.1 實(shí)例引入 2.2 Java語(yǔ)言概述 2.3 面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)述 2.3.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 2.3.2 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征 2.4 Java語(yǔ)言基礎(chǔ)知識(shí) 2.4.1 數(shù)據(jù)類型 2.4.2 運(yùn)算符 2.4.3 流程控制 2.4.4 數(shù)組 2.4.5 類與對(duì)象 2.4.6 類的封裝性 2.4.7 類的繼承性 2.4.8 類的多態(tài)性 2.4.9 抽象類和內(nèi)部類 2.4.10 接口 2.4.11 包 2.4.12 異常處理 2.4.13 Java標(biāo)準(zhǔn)數(shù)據(jù)流 2.5 Java語(yǔ)言中的“指針”實(shí)現(xiàn) 2.6 JDK1.5新增特性 2.6.1 泛型 2.6.2 增強(qiáng)的集合遍歷結(jié)構(gòu) 2.6.3 自動(dòng)裝箱/拆箱 2.6.4 枚舉類型 2.6.5 靜態(tài)import 2.6.6 從終端讀取數(shù)據(jù) 2.6.7 格式化輸出 2.6.8 可變參數(shù) 習(xí)題 第3章 線性表 3.1 實(shí)例引入 3.2 線性表的概述 3.2.1 線性表的概念 3.2.2 線性表的存儲(chǔ)結(jié)構(gòu)及操作 3.3 順序表的基本操作及實(shí)現(xiàn) 3.3.1 順序表的概述 3.3.2 順序表的基本操作及實(shí)現(xiàn) 3.4 鏈表的基本操作及實(shí)現(xiàn) 3.4.1 鏈表 3.4.2 鏈表的分類 3.4.3 單鏈表的基本運(yùn)算及實(shí)現(xiàn) 3.4.4 其他形式的鏈表的相關(guān)運(yùn)算 3.4.5 算法實(shí)例 3.5 線性表的應(yīng)用 3.5.1 順序表的連接 3.5.2 字符串的逆轉(zhuǎn)算法 習(xí)題 第4章 棧和隊(duì)列 4.1 實(shí)例引入 4.2 棧的相關(guān)概述 4.2.1 棧的定義 4.2.2 棧的相關(guān)概念 4.2.3 棧的操作過(guò)程 4.2.4 棧的存儲(chǔ)結(jié)構(gòu) 4.3 用數(shù)組實(shí)現(xiàn)順序棧及操作 4.4 用類實(shí)現(xiàn)鏈?zhǔn)綏<跋鄳?yīng)操作 4.5 隊(duì)列的相關(guān)概述 4.5.1 隊(duì)列的定義 4.5.2 隊(duì)列的相關(guān)概念 4.5.3 隊(duì)列的存儲(chǔ)結(jié)構(gòu) 4.6 用數(shù)組實(shí)現(xiàn)順序隊(duì)列及相應(yīng)操作 4.7 用類實(shí)現(xiàn)鏈隊(duì)列及相應(yīng)操作 4.8 棧和隊(duì)列的實(shí)例應(yīng)用 習(xí)題 第5章 數(shù)組和廣義表 5.1 實(shí)例引入 5.2 數(shù)組 5.2.1 數(shù)組的基本概念 5.2.2 一維數(shù)組 5.2.3 二維數(shù)組 5.3 特殊矩陣 5.3.1 對(duì)稱矩陣 5.3.2 三角矩陣 5.3.3 對(duì)角矩陣 5.4 稀疏矩陣 5.5 廣義表 5.5.1 廣義表的概念 5.5.2 廣義表的存儲(chǔ)結(jié)構(gòu) 習(xí)題 第6章 串 6.1 實(shí)例引入 6.2 串的概述 6.3 串的順序存儲(chǔ)結(jié)構(gòu) 6.3.1 通過(guò)String類處理串 6.3.2 通過(guò)StringBuffer類處理串 6.4 串的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 6.4.1 鏈串的實(shí)現(xiàn) 6.4.2 鏈串基本算法 習(xí)題 第7章 樹與二叉樹 7.1 實(shí)例引入 7.2 樹 7.2.1 樹的定義 7.2.2 樹的表示方法 7.2.3 樹的抽象數(shù)據(jù)類型 7.2.4 樹的存儲(chǔ)結(jié)構(gòu) 7.3 二叉樹 7.3.1 二叉樹的定義 7.3.2 二叉樹的性質(zhì) 7.3.3 二叉樹的抽象數(shù)據(jù)類型 7.3.4 二叉樹的存儲(chǔ)結(jié)構(gòu) 7.4 二叉樹的節(jié)點(diǎn)類及二叉樹類 7.4.1 二叉樹節(jié)點(diǎn)類 7.4.2 二叉樹類 7.5 二叉樹的遍歷 7.5.1 二叉樹遍歷算法 7.5.2 二叉樹遍歷算法的實(shí)現(xiàn) 7.5.3 非遞歸的二叉樹遍歷算法 7.5.4 二叉樹遍歷的應(yīng)用 7.6 線索二叉樹 7.6.1 線索二叉樹的定義 7.6.2 線索二叉樹的存儲(chǔ)結(jié)構(gòu) 7.6.3 遍歷線索二叉樹 7.6.4 構(gòu)造中序線索二叉樹 7.7 樹和森林 7.7.1 樹、森林與二叉樹的轉(zhuǎn)換 7.7.2 樹和森林的遍歷 7.8 樹的應(yīng)用 7.8.1 二叉排序樹 7.8.2 哈夫曼樹和哈夫曼編碼 7.8.3 判定樹 習(xí)題 第8章 圖 8.1 實(shí)例引入 8.2 圖的基本概念 8.2.1 圖的定義 8.2.2 圖的相關(guān)概念 8.3 圖的存儲(chǔ)結(jié)構(gòu) 8.3.1 鄰接矩陣 8.3.2 鄰接表 8.4 圖的遍歷 8.4.1 深度優(yōu)先搜索遍歷 8.4.2 廣度優(yōu)先搜索遍歷 8.5 生成樹和最小生成樹 8.5.1 生成樹 8.5.2 Kruskal算法 8.5.3 Prim算法 8.6 最短路徑問(wèn)題 8.7 拓?fù)渑判? 8.7.1 有向無(wú)環(huán)圖 8.7.2 拓?fù)渑判? 8.8 AOE網(wǎng)與關(guān)鍵路徑 8.8.1 AOE網(wǎng) 8.8.2 關(guān)鍵路徑 8.9 綜合示例 習(xí)題 第9章 查找 9.1 實(shí)例引入 9.2 基本概念與術(shù)語(yǔ) 9.2.1 查找的概念 9.2.2 查找方法 9.3 順序查找法 9.4 折半查找法 9.5 二叉排序樹法 9.6 哈希查找法 9.6.1 哈希查找概念 9.6.2 哈希函數(shù) 9.6.3 沖突解決方法 9.7 應(yīng)用實(shí)例 習(xí)題 第10章 排序 10.1 實(shí)例引入 10.2 排序的概念 10.3 排序的分類 10.3.1 按照存儲(chǔ)交換分類 10.3.2 按照內(nèi)部排序的過(guò)程分類 10.3.3 按照排序的穩(wěn)定性分類 10.4 插入排序 10.4.1 直接插入排序 10.4.2 希爾排序 10.5 交換排序 10.5.1 冒泡排序 10.5.2 快速排序 10.6 選擇排序 10.6.1 直接選擇排序 10.6.2 堆排序 10.7 其他排序 10.7.1 歸并排序 10.7.2 基數(shù)排序 10.8 排序的工程應(yīng)用舉例 習(xí)題 參考文獻(xiàn)
章節(jié)摘錄
第1章 緒論 1.4 算法效率分析 【學(xué)習(xí)任務(wù)】了解算法的實(shí)效性分析方法,重點(diǎn)了解時(shí)間復(fù)雜度的計(jì)算方法以及近似表示方法,并掌握通過(guò)時(shí)間復(fù)雜度判斷算法優(yōu)劣的方法?! ⊥ㄟ^(guò)前面的分析,每個(gè)算法都可以用多種方式實(shí)現(xiàn),但是實(shí)現(xiàn)算法的效率是不一定相同的。每個(gè)程序執(zhí)行所花費(fèi)的時(shí)間,稱為該程序的時(shí)間復(fù)雜度,如果忽略語(yǔ)句間的執(zhí)行時(shí)間差別,一般用該程序每條語(yǔ)句的執(zhí)行次數(shù)作為該程序的時(shí)問(wèn)復(fù)雜度進(jìn)行判斷。對(duì)時(shí)間復(fù)雜度的判斷,是斷定某程序(或算法)效率是否高的標(biāo)準(zhǔn)之一?! ∫粋€(gè)算法的時(shí)間復(fù)雜度(Time Complexity)是指在計(jì)算機(jī)上運(yùn)行該算法(或程序)所需要的時(shí)間。實(shí)際上,每個(gè)程序員都知道,算法執(zhí)行的時(shí)間和很多因素都有關(guān)系,例如,機(jī)器的性能、算法語(yǔ)言的選取、編譯程序的效率、算法的選擇,以及問(wèn)題本身的因素(如問(wèn)題的復(fù)雜程度、問(wèn)題本身的規(guī)模等)?! ≡卺槍?duì)實(shí)際問(wèn)題時(shí),尤其是考慮規(guī)模比較大的問(wèn)題時(shí),一般使用漸進(jìn)式表示法來(lái)判別算法的時(shí)間復(fù)雜度。為了使程序員更好地掌握算法本身的特性,通常的做法是:在不考慮不確定情況的前提下,以算法中簡(jiǎn)單操作重復(fù)執(zhí)行的次數(shù)作為算法的時(shí)間復(fù)雜度的衡量標(biāo)準(zhǔn),即主要考慮問(wèn)題的規(guī)模,而不考慮某些單個(gè)步驟之間的時(shí)間差異。因此,一個(gè)特定算法的運(yùn)行時(shí)問(wèn)長(zhǎng)短更多地依賴于問(wèn)題的規(guī)模n,或者說(shuō)它是問(wèn)題規(guī)模n的函數(shù)f(n),因此,引入漸進(jìn)時(shí)間復(fù)雜度在數(shù)量上估計(jì)一個(gè)算法的執(zhí)行時(shí)間,也能夠達(dá)到分析算法的目的。算法時(shí)間的度量記做T(n)=O(f(n))
編輯推薦
教材編寫思路:本書重點(diǎn)培養(yǎng)高職高專院校計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生應(yīng)具備的數(shù)據(jù)結(jié)構(gòu)應(yīng)用能力。理論知識(shí)部分以夠用為主,強(qiáng)調(diào)理論和實(shí)踐緊密結(jié)合,重點(diǎn)突出實(shí)踐和實(shí)用性。每章均由實(shí)例引入,體現(xiàn)了“以就業(yè)為導(dǎo)向”的職業(yè)教育理念;采用“以應(yīng)用實(shí)例鞏固理論知識(shí)”的內(nèi)容編排結(jié)構(gòu),突出了“以技能培養(yǎng)為目標(biāo)”的職業(yè)教育思想?! ∵m用教學(xué)對(duì)象:適合作為高職高專院校計(jì)算機(jī)及相關(guān)專業(yè)“數(shù)據(jù)結(jié)構(gòu)”課程的教材。 輔助教學(xué)資源:教學(xué)課件,模擬試卷,習(xí)題答案。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu) PDF格式下載