出版時(shí)間:2010-3 出版社:機(jī)械工業(yè)出版社 作者:蘇仕華 等 著 頁數(shù):207
前言
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)的必修、主干課程之一,它旨在使讀者學(xué)會(huì)分析、研究計(jì)算機(jī)加工的數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)的組織方法,以便選擇合適的數(shù)據(jù)邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),以及相應(yīng)的運(yùn)算(操作),把現(xiàn)實(shí)世界中的問題轉(zhuǎn)化為計(jì)算機(jī)內(nèi)部的表示和處理,這是一個(gè)良好的程序設(shè)計(jì)技能訓(xùn)練的過程。在整個(gè)教學(xué)或?qū)W習(xí)過程中,解題能力和技巧的訓(xùn)練是一個(gè)重要的環(huán)節(jié)。為了指導(dǎo)和幫助讀者更好地學(xué)習(xí)、實(shí)踐數(shù)據(jù)結(jié)構(gòu)這門課程,幫助教師講授“數(shù)據(jù)結(jié)構(gòu)”課程,滿足指導(dǎo)和評(píng)價(jià)“課程設(shè)計(jì)”的需要,我們編寫了這本書?! ∽髡咴陂L(zhǎng)期講授數(shù)據(jù)結(jié)構(gòu)這門課程的過程中體會(huì)到,每次在布置課程設(shè)計(jì)或作業(yè)時(shí),總是要冥思苦想,對(duì)選什么樣的題、如何評(píng)分等難以定奪;而讀者也對(duì)如何利用書本中的基本知識(shí)和方法解決一些實(shí)際問題,以及對(duì)問題的求解進(jìn)行算法設(shè)計(jì)感到難以下手。實(shí)踐證明,理解課程內(nèi)容與較好地解決實(shí)際問題之間存在著明顯差距,而算法設(shè)計(jì)完成的質(zhì)量與基本的程序設(shè)計(jì)素質(zhì)的培養(yǎng)是密切相關(guān)的。要想理解和鞏固所學(xué)的基本概念、原理和方法,牢固地掌握所學(xué)的基本知識(shí)、基本技能,達(dá)到融會(huì)貫通、舉一反三的目的,就必須多做、多練、多見(見多識(shí)廣)。正是為了達(dá)到上述目的,本書中通過一些實(shí)際的應(yīng)用,對(duì)一些重要的數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行解讀。經(jīng)過循序漸進(jìn)地訓(xùn)練,就可以使讀者掌握更多的程序設(shè)計(jì)技巧和方法,提高分析問題、解決問題的能力?! ”緯裱瓟?shù)據(jù)結(jié)構(gòu)課程的教學(xué)大綱要求,內(nèi)容共分10章:第0章是緒論,簡(jiǎn)要介紹后9章中各課程設(shè)計(jì)的內(nèi)容概要,以便作為后面學(xué)習(xí)的引導(dǎo);第1章是鏈表的應(yīng)用,用三個(gè)課程設(shè)計(jì)實(shí)例來討論單鏈表和單循環(huán)鏈表的存儲(chǔ)結(jié)構(gòu)及相關(guān)算法的分析和應(yīng)用;第2章是棧和隊(duì)列的應(yīng)用,用兩個(gè)設(shè)計(jì)實(shí)例討論棧和隊(duì)列的存儲(chǔ)結(jié)構(gòu)以及棧、隊(duì)列、回溯等概念的應(yīng)用;第3章是文本文件的檢索,本章用了一個(gè)文本檢索的設(shè)計(jì)實(shí)例,將串的存儲(chǔ)結(jié)構(gòu)、串的各種操作都蘊(yùn)涵其中;第4章有兩個(gè)方面的內(nèi)容,一個(gè)是稀疏矩陣的存儲(chǔ)及運(yùn)算,另一個(gè)是廣義表的各種操作的實(shí)現(xiàn);第5章是樹結(jié)構(gòu)的應(yīng)用,本章主要涉及樹、二叉樹的存儲(chǔ)結(jié)構(gòu)及其遍歷,以及赫夫曼樹和赫夫曼編碼的生成及其應(yīng)用;第6章是圖結(jié)構(gòu)的應(yīng)用,這一章中討論了一個(gè)非常有實(shí)用價(jià)值的圖結(jié)構(gòu)應(yīng)用實(shí)例,即交通網(wǎng)絡(luò)中的最短路徑問題;第7章用一個(gè)課程設(shè)計(jì)實(shí)例討論了各種排序算法的具體實(shí)現(xiàn)和應(yīng)用;第8章討論排序和查找兩個(gè)方面的應(yīng)用實(shí)例;第9章是文件的應(yīng)用,它是一個(gè)綜合的應(yīng)用設(shè)計(jì),不僅用到文件的概念,還用到靜態(tài)鏈表和數(shù)組等存儲(chǔ)結(jié)構(gòu),也用到了排序、查找等概念?! 榱颂岣邔W(xué)生分析問題和解決問題的能力,在每章中都對(duì)數(shù)據(jù)結(jié)構(gòu)中的主要知識(shí)進(jìn)行了歸納和解析,對(duì)與課程設(shè)計(jì)相關(guān)的算法進(jìn)行了實(shí)例分析。而且,每章中都選擇了一兩個(gè)課程設(shè)計(jì)實(shí)例,這些設(shè)計(jì)內(nèi)容豐富、涉及面廣、難易適當(dāng),能給學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程的讀者以啟發(fā),達(dá)到讓讀者掌握相關(guān)知識(shí)和開闊視野的目的。因此,對(duì)書中大部分設(shè)計(jì)題目都做了解析,并給出了參考算法和源程序代碼?! ”緯商K仕華、魏韋巍、王敬生和劉燕君共同編寫,魏韋巍還負(fù)責(zé)全書所有課程設(shè)計(jì)實(shí)例的程序調(diào)試和驗(yàn)證工作。為了確保程序質(zhì)量,蘇仕華和劉燕君又在春節(jié)期間對(duì)全部程序進(jìn)行了驗(yàn)證與優(yōu)化。 在本書的編寫過程中,得到了中國(guó)科學(xué)技術(shù)大學(xué)計(jì)算機(jī)系黃劉生教授、自動(dòng)化系劉振安教授的大力支持和幫助,他們對(duì)本書的編寫提出了許多寶貴的意見。另外,本書還參考了大量作者的書籍和資料等,在此致以誠(chéng)摯的謝意。 由于作者水平有限、時(shí)間倉促,書中難免存在缺點(diǎn)和錯(cuò)誤,殷切希望廣大讀者及同行們批評(píng)指正。
內(nèi)容概要
為了配合數(shù)據(jù)結(jié)構(gòu)課程的教學(xué),加強(qiáng)讀者對(duì)數(shù)據(jù)結(jié)構(gòu)算法實(shí)際應(yīng)用技能的訓(xùn)練,提高讀者分析問題和解決問題的能力,《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(第2版)》選取并討論了多個(gè)方面應(yīng)用的課程設(shè)計(jì)。全書共分10章,給出了與數(shù)據(jù)結(jié)構(gòu)內(nèi)容相關(guān)的知識(shí)解析、算法分析以及課程設(shè)計(jì),描述了相關(guān)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)表示及其實(shí)際應(yīng)用的操作算法,對(duì)用類C語言描述的各種算法進(jìn)行了詳細(xì)的注釋和性能分析,并對(duì)各應(yīng)用的解題思路、方法進(jìn)行了較詳細(xì)的分析。全書特別注重對(duì)實(shí)踐應(yīng)用問題的分析和理解,內(nèi)容豐富,概念清楚,通俗易懂?! 稊?shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(第2版)》可作為高等院校各類相關(guān)專業(yè)本科生、??粕鷮W(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的輔助教材以及實(shí)驗(yàn)指導(dǎo)用書,也可作為廣大從事計(jì)算機(jī)軟件與應(yīng)用的工作人員及社會(huì)大眾學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的參考用書。
書籍目錄
專家指導(dǎo)委員會(huì)前言第0章 緒論 10.1 課程設(shè)計(jì)特點(diǎn) 10.2 課程設(shè)計(jì)結(jié)構(gòu) 1第1章 鏈表的應(yīng)用 51.1 知識(shí)解析 51.1.1 線性表的基礎(chǔ)知識(shí) 51.1.2 線性表的基本運(yùn)算 71.2 算法設(shè)計(jì)與分析 91.2.1 順序表上的相關(guān)操作 91.2.2 線性鏈表上相關(guān)操作的算法 及其分析 111.3 一元多項(xiàng)式的運(yùn)算 131.3.1 問題分析 141.3.2 算法解析 141.3.3 完整程序清單 171.3.4 程序運(yùn)行測(cè)試 191.4 通訊錄管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 201.4.1 問題分析 201.4.2 系統(tǒng)設(shè)計(jì) 211.4.3 完整程序清單 271.4.4 程序運(yùn)行測(cè)試 321.5 約瑟夫生者死者游戲 351.5.1 問題分析 351.5.2 程序?qū)崿F(xiàn) 371.5.3 程序運(yùn)行測(cè)試 391.6 評(píng)價(jià)標(biāo)準(zhǔn) 39第2章 棧和隊(duì)列的應(yīng)用 402.1 知識(shí)解析 402.1.1 棧和隊(duì)列的基本概念 402.1.2 棧和隊(duì)列的基本運(yùn)算 412.1.3 棧和隊(duì)列的存儲(chǔ)結(jié)構(gòu) 412.2 算法設(shè)計(jì)與分析 452.2.1 棧的特性 452.2.2 循環(huán)隊(duì)列的特點(diǎn) 452.2.3 棧的應(yīng)用舉例 462.3 八皇后問題 482.3.1 設(shè)計(jì)要求與分析 482.3.2 算法求精 492.3.3 算法擴(kuò)充 502.3.4 完整的算法實(shí)現(xiàn) 512.4 表達(dá)式求值問題 532.4.1 設(shè)計(jì)要求與分析 542.4.2 中綴表達(dá)式到后綴表達(dá)式的 轉(zhuǎn)換 542.4.3 后綴表達(dá)式的計(jì)算 562.4.4 表達(dá)式運(yùn)算算法的實(shí)現(xiàn) 572.5 評(píng)價(jià)標(biāo)準(zhǔn) 61第3章 文本文件的檢索 623.1 知識(shí)解析 623.1.1 串的概念 623.1.2 順序串 623.1.3 鏈串 633.1.4 串運(yùn)算的實(shí)現(xiàn) 633.2 算法設(shè)計(jì)與分析 653.3 串模式匹配算法的設(shè)計(jì)與實(shí)現(xiàn) 673.3.1 設(shè)計(jì)要求 673.3.2 算法分析與設(shè)計(jì) 673.3.3 調(diào)用算法實(shí)例 683.4 文本文件單詞的檢索與計(jì)數(shù) 693.4.1 設(shè)計(jì)要求與分析 693.4.2 設(shè)計(jì)實(shí)例的實(shí)現(xiàn) 703.5 評(píng)價(jià)標(biāo)準(zhǔn) 74第4章 稀疏矩陣和廣義表 754.1 知識(shí)解析 754.1.1 多維數(shù)組 754.1.2 特殊矩陣 764.1.3 廣義表 774.2 算法設(shè)計(jì)與分析 784.2.1 矩陣運(yùn)算 784.2.2 廣義表運(yùn)算 804.3 稀疏矩陣的壓縮存儲(chǔ)和運(yùn)算 804.3.1 設(shè)計(jì)要求與分析 804.3.2 設(shè)計(jì)實(shí)例 814.3.3 完整的程序?qū)崿F(xiàn) 834.4 廣義表的運(yùn)算 844.4.1 設(shè)計(jì)要求 844.4.2 算法分析 854.4.3 算法實(shí)現(xiàn) 874.4.4 運(yùn)行測(cè)試實(shí)例 894.5 評(píng)價(jià)標(biāo)準(zhǔn) 92第5章 樹結(jié)構(gòu)的應(yīng)用 935.1 知識(shí)解析 935.1.1 樹的概念和術(shù)語 935.1.2 二叉樹概述 935.1.3 二叉樹的運(yùn)算 945.1.4 線索二叉樹 965.1.5 樹和森林 985.1.6 赫夫曼樹 995.2 算法設(shè)計(jì)與分析 1005.2.1 二叉樹的遍歷 1005.2.2 赫夫曼樹 1015.2.3 二叉樹上的其他運(yùn)算 1025.3 求二叉樹上結(jié)點(diǎn)的路徑 1045.3.1 設(shè)計(jì)要求與分析 1045.3.2 設(shè)計(jì)實(shí)例 1055.3.3 算法運(yùn)行實(shí)例 1095.4 赫夫曼編碼的應(yīng)用 1125.4.1 設(shè)計(jì)要求與分析 1125.4.2 赫夫曼樹的建立 1125.4.3 赫夫曼編碼 1145.4.4 代碼文件的譯碼 1155.4.5 算法運(yùn)行實(shí)例 1165.5 評(píng)價(jià)標(biāo)準(zhǔn) 120第6章 圖結(jié)構(gòu)的應(yīng)用 1216.1 知識(shí)解析 1216.1.1 圖的基本術(shù)語 1216.1.2 圖的存儲(chǔ)表示方式 1226.1.3 圖的基本運(yùn)算 1236.1.4 拓?fù)渑判蚍?1266.2 算法設(shè)計(jì)與分析 1266.2.1 圖的存儲(chǔ)表示 1266.2.2 圖的遍歷 1276.2.3 頂點(diǎn)之間的最短路徑 1296.3 交通咨詢系統(tǒng)設(shè)計(jì) 1306.3.1 設(shè)計(jì)要求與分析 1306.3.2 設(shè)計(jì)功能的實(shí)現(xiàn) 1316.3.3 主控程序 1336.3.4 運(yùn)行實(shí)例 1346.4 評(píng)價(jià)標(biāo)準(zhǔn) 138第7章 排序算法的應(yīng)用 1407.1 知識(shí)解析 1407.1.1 排序的基本概念 1407.1.2 常用排序方法 1417.1.3 各種排序方法比較 1427.2 算法實(shí)現(xiàn)思路 1437.2.1 插入排序 1437.2.2 交換排序 1447.2.3 選擇排序 1467.2.4 分配排序 1497.3 學(xué)生成績(jī)處理 1507.3.1 設(shè)計(jì)要求與分析 1507.3.2 算法設(shè)計(jì)源程序 1517.3.3 主控程序 1567.3.4 運(yùn)行實(shí)例 1577.4 評(píng)價(jià)標(biāo)準(zhǔn) 159第8章 查找算法的應(yīng)用 1608.1 知識(shí)解析 1608.1.1 順序表的查找 1608.1.2 二叉排序樹 1628.1.3 散列表的查找 1638.2 算法設(shè)計(jì)與分析 1668.2.1 有序表上的順序查找 1678.2.2 查找算法分析 1678.3 航班信息的查詢與檢索 1688.3.1 設(shè)計(jì)要求 1688.3.2 設(shè)計(jì)分析 1698.3.3 算法實(shí)現(xiàn) 1708.3.4 源程序清單 1728.3.5 運(yùn)行測(cè)試實(shí)例 1778.4 評(píng)價(jià)標(biāo)準(zhǔn) 179第9章 文件的應(yīng)用 1819.1 知識(shí)解析 1819.1.1 文件的基本概念 1819.1.2 常用的文件結(jié)構(gòu) 1829.2 文件實(shí)例分析 1849.3 圖書管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 1869.3.1 設(shè)計(jì)要求 1869.3.2 設(shè)計(jì)分析 1879.3.3 設(shè)計(jì)的實(shí)現(xiàn) 1919.3.4 主控菜單的設(shè)計(jì) 2009.3.5 運(yùn)行測(cè)試實(shí)例 2029.4 評(píng)價(jià)標(biāo)準(zhǔn) 207參考文獻(xiàn) 208
章節(jié)摘錄
1.6 評(píng)價(jià)標(biāo)準(zhǔn) 本章的設(shè)計(jì)是練習(xí)使用單鏈表結(jié)構(gòu)實(shí)現(xiàn)有關(guān)鏈表的應(yīng)用。設(shè)計(jì)中分了三個(gè)實(shí)驗(yàn):第一個(gè)是一元多項(xiàng)式的運(yùn)算,第二個(gè)是通訊錄管理系統(tǒng)設(shè)計(jì),第三個(gè)是約瑟夫生者死者游戲的實(shí)現(xiàn)。本章的主要目的是使同學(xué)們進(jìn)一步熟悉和掌握線性鏈表的存儲(chǔ)結(jié)構(gòu)以及鏈表的相關(guān)操作,學(xué)會(huì)完成一個(gè)完整的應(yīng)用程序的設(shè)計(jì)(算法分析、算法設(shè)計(jì)到最后的算法實(shí)現(xiàn)等)。本設(shè)計(jì)比較容易,也相對(duì)比較簡(jiǎn)單,目的是訓(xùn)練學(xué)生利用鏈表的知識(shí)來解決實(shí)際問題的能力,為今后的學(xué)習(xí)打好基礎(chǔ)。同學(xué)們可以從中選擇一個(gè)或兩個(gè)實(shí)驗(yàn),只要能保證程序運(yùn)行全部正確,即可獲得80-84分?! ∪绻麑W(xué)生有自己的見解或發(fā)揮,可以考慮給予加分,一般可以加到85分以上,但應(yīng)嚴(yán)格控制90分以上的學(xué)生人數(shù)。如果學(xué)生的程序存在局部問題,但有些地方又具有一定的創(chuàng)造性,則可以酌情考慮給75-79分?! ∪绻幸粋€(gè)算法程序錯(cuò)誤很多,成績(jī)不能高于74分;若兩個(gè)算法程序都有錯(cuò)誤,則不能給予及格。如果僅是菜單上有問題,則可得75-79分?! 捂湵淼牟僮鬟€有許多,如鏈表的插入、鏈表的刪除以及鏈表的查找等,同學(xué)們可以將此加入到第二個(gè)實(shí)驗(yàn)的程序中;另外,約瑟夫生者與死者游戲也可以用順序表實(shí)現(xiàn),這作為選做實(shí)驗(yàn),同時(shí)可以作為另外加分的依據(jù)。
編輯推薦
課程設(shè)計(jì)可以充分彌補(bǔ)課堂教學(xué)和實(shí)驗(yàn)中知識(shí)深度和廣度有限的問題,更好地幫助學(xué)生系統(tǒng)掌握該門課程的主要內(nèi)容。通過課程設(shè)計(jì)的綜合訓(xùn)練,能培養(yǎng)學(xué)生實(shí)際分析問題、編程和動(dòng)手的能力。幫助學(xué)生系統(tǒng)掌握該門課程的主要內(nèi)容,更好地完成教學(xué)任務(wù)。 自2005年《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(第2版)》第1版出版以來。廣獲好評(píng),多次重印,在聽取了許多讀者的意見之后,又出版了第2版。為了幫助學(xué)生理解數(shù)據(jù)結(jié)構(gòu)中的算法知識(shí),提高學(xué)生分析問題和解決問題的能力,第2版對(duì)數(shù)據(jù)結(jié)構(gòu)中的主要知識(shí)進(jìn)行了歸納和解析,對(duì)與課程設(shè)計(jì)相關(guān)的算法進(jìn)行了實(shí)例分析。 《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(第2版)》特點(diǎn) 獨(dú)立于具體的數(shù)據(jù)結(jié)構(gòu)教科書,重點(diǎn)放在數(shù)據(jù)的存儲(chǔ)以及在此存儲(chǔ)結(jié)構(gòu)上所實(shí)現(xiàn)的各種重要和典型的算法上?! 〗Y(jié)合實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋知識(shí)點(diǎn),又接近工程實(shí)際需要。 通過詳細(xì)的實(shí)例分析和循序漸進(jìn)的描述.啟發(fā)學(xué)生完成設(shè)計(jì)?! √峁┝藥讉€(gè)較大的綜合課程設(shè)計(jì)實(shí)例。以進(jìn)一步鍛煉學(xué)生的動(dòng)手能力。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) PDF格式下載