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