數(shù)據(jù)結(jié)構(gòu)教程

出版時間:2009-2  出版社:電子工業(yè)出版社  作者:吉根林,陳波 主編  頁數(shù):231  

前言

  “數(shù)據(jù)結(jié)構(gòu)”是計算機科學與技術(shù)、軟件工程、信息與計算科學、信息管理與信息系統(tǒng)等相關(guān)專業(yè)最重要的專業(yè)基礎課之一,主要研究分析計算機存儲、組織數(shù)據(jù)的方式和相關(guān)操作運算算法。通過本課程學習,要求學生掌握數(shù)據(jù)結(jié)構(gòu)和算法的基本概念和技術(shù),掌握數(shù)組、線性表、棧、隊列、串、廣義表、樹、二叉樹、圖等常用數(shù)據(jù)結(jié)構(gòu)及相關(guān)算法,以及排序、查找等重要技術(shù),能針對應用問題選擇合適的數(shù)據(jù)結(jié)構(gòu),并設計相應的操作運算算法?! ∧暇煼洞髮W“數(shù)據(jù)結(jié)構(gòu)”課程經(jīng)過多年建設與探索,進行了教學內(nèi)容與教學方法的改革與實踐,提高了教學質(zhì)量,被評為江蘇省精品課程。我們在教學中貫徹了下列指導思想:  (1)基礎性。數(shù)據(jù)結(jié)構(gòu)、算法和程序設計是計算機科學的核心,本課程應為學生的軟件開發(fā)能力的培養(yǎng)打下扎實的基礎。 ?。?)系統(tǒng)性。本課程以系統(tǒng)的觀點研究數(shù)據(jù)組織和操作算法,必須在抽象思維、算法設計等方面加強學生的能力培養(yǎng)。 ?。?)先進性。本課程的新思想和新方法不斷產(chǎn)生,必須不斷更新教學內(nèi)容以拓寬學生的知識面,適應計算機應用和發(fā)展的需要。 ?。?)實踐性。本課程是一門實踐性很強的課程,在“數(shù)據(jù)結(jié)構(gòu)”的課程實驗中不僅要訓練學生的計算機實驗技能和操作能力,更應包括設計算法的創(chuàng)造性實驗能力。  本教材在編寫過程中集作者多年“數(shù)據(jù)結(jié)構(gòu)”精品課程的教學經(jīng)驗,體現(xiàn)科學性、先進性和實用性原則,既注重基本原理,又重視算法實現(xiàn);力求內(nèi)容豐富,重點突出,條理清晰,由淺入深,語言流暢,具有特色。全書使用C++類定義各種數(shù)據(jù)結(jié)構(gòu),利用C++偽代碼描述算法;給出許多經(jīng)典算法和典型題例;每章均附有小結(jié)、習題和上機實驗題;附錄給出了5套課程考試樣卷和5道課程設計題,以供教學參考?! ”窘滩墓卜?0章?! 〉?章簡要介紹數(shù)據(jù)結(jié)構(gòu)和算法的基本概念;  第2-5章介紹線性結(jié)構(gòu)及其算法,包括線性表、棧、隊列、串、數(shù)組和特殊矩陣;  第6-8章介紹非線性結(jié)構(gòu)及其算法,包括廣義表、樹、二叉樹、圖;  第9章介紹各種常用的查找算法;  第10章介紹各種常用的排序算法?! ”窘滩挠赡暇煼洞髮W“數(shù)據(jù)結(jié)構(gòu)”課程組共同編寫。其中,第1章和第10章由吉根林教授編寫;第2章和第3章由陳波副教授編寫;第6章和第7章由王瓊副教授編寫;第5章和第8章由周俊生副教授編寫;第4章和第9章由于泠副教授編寫。全書由吉根林和陳波擔任主編,并最后統(tǒng)稿、修改和定稿。本書出版過程中得到了電子工業(yè)出版社的大力支持,在此表示衷心的感謝!  由于作者水平有限,書中難免存在不妥之處,敬請讀者批評指正。

內(nèi)容概要

本書是省精品課程的教學成果,全書共分10章,介紹各種常用的數(shù)據(jù)結(jié)構(gòu),包括線性表、棧、隊列、串、數(shù)組、特殊矩陣、廣義表、樹、二叉樹、圖等;闡述各種數(shù)據(jù)結(jié)構(gòu)的基本概念、邏輯關(guān)系、存儲結(jié)構(gòu)、操作運算及其實現(xiàn)算法;介紹各種常用的查找算法和排序算法,并對各種算法的性能進行分析。書中使用C++類定義各種數(shù)據(jù)結(jié)構(gòu),利用C++偽代碼描述算法;給出了許多經(jīng)典算法和典型題例;每章均附有小結(jié)、習題和上機實驗題;附錄給出了5套課程考試樣卷和5道課程設計題。    本書既注重基本原理,又重視算法實現(xiàn);既體現(xiàn)先進性,又強調(diào)實用性;內(nèi)容豐富,重點突出,條理清晰,由淺入深。本書的PPT課件和相關(guān)教學資源可從江蘇省精品課程和南京師范大學精品課程“數(shù)據(jù)結(jié)構(gòu)”網(wǎng)站http://mcs.njnu.edu.cn/datastructure/index.asp下載。    本書可作為高等學校計算機、軟件工程、信息與計算科學、信息管理與信息系統(tǒng)等專業(yè)教材,也可供計算機軟件開發(fā)人員參考。

書籍目錄

第1章  緒論  1.1  數(shù)據(jù)結(jié)構(gòu)課程的研究內(nèi)容  1.2  基本概念及術(shù)語  1.3  算法與算法分析    1.3.1  算法    1.3.2  算法分析  本章小結(jié)  習題1  上機實驗題1第2章  線性表  2.1  線性表的基本概念  2.2  線性表的存儲結(jié)構(gòu)    2.2.1  順序存儲結(jié)構(gòu)    2.2.2  鏈式存儲結(jié)構(gòu)  2.3  線性表的操作算法    2.3.1  順序表的操作算法    2.3.2  鏈表的操作算法  2.4  線性表的應用  2.5  順序表和鏈表的綜合比較  本章小結(jié)  習題2  上機實驗題2第3章  棧和隊列  3.1  棧    3.1.1  棧的基本概念    3.1.2  棧的存儲結(jié)構(gòu)    3.1.3  棧的操作算法    3.1.4  棧的應用  3.2  隊列    3.2.1  隊列的基本概念    3.2.2  隊列的存儲結(jié)構(gòu)    3.2.3  隊列的操作算法    3.2.4  隊列的應用  本章小結(jié)  習題3  上機實驗題3第4章  串  4.1  串的基本概念  4.2  串的存儲結(jié)構(gòu)    4.2.1  串的順序存儲結(jié)構(gòu)    4.2.2  串的鏈式存儲結(jié)構(gòu)  4.3  串的操作算法    4.3.1  串的基本操作算法    4.3.2  串的模式匹配    4.3.3  串的應用——文本編輯軟件  本章小結(jié)  習題4  上機實驗題4第5章  數(shù)組和特殊矩陣  5.1  數(shù)組    5.1.1  數(shù)組的基本概念    5.1.2  數(shù)組的存儲結(jié)構(gòu)  5.2  特殊矩陣的壓縮存儲    5.2.1  對稱矩陣的壓縮存儲    5.2.2  三角矩陣的壓縮存儲    5.2.3  對角矩陣的壓縮存儲    5.2.4  稀疏矩陣的壓縮存儲  本章小結(jié)  習題5  上機實驗題5第6章  廣義表  6.1  廣義表的基本概念  6.2  廣義表的存儲結(jié)構(gòu)    6.2.1  廣義表中結(jié)點的結(jié)構(gòu)    6.2.2  廣義表的存儲結(jié)構(gòu)舉例  6.3  廣義表的操作算法    6.3.1  構(gòu)造算法    6.3.2  遍歷廣義表    6.3.3  廣義表算法舉例  本章小結(jié)  習題6  上機實驗題6第7章  樹和二叉樹  7.1  樹的概念和性質(zhì)    7.1.1  樹的定義    7.1.2  樹的基本術(shù)語    7.1.3  樹的基本性質(zhì)  7.2  二叉樹的概念和性質(zhì)    7.2.1  二叉樹的定義    7.2.2  二叉樹的基本性質(zhì)  7.3  二叉樹的存儲結(jié)構(gòu)    7.3.1  二叉樹的順序存儲結(jié)構(gòu)    7.3.2  二叉樹的鏈式存儲結(jié)構(gòu)  7.4  二叉樹的遍歷    7.4.1  二叉樹遍歷的概念    7.4.2  二叉樹遍歷算法    7.4.3  二叉樹的構(gòu)造和析構(gòu)算法  7.5  二叉樹的其他操作算法  7.6  線索二叉樹    7.6.1  線索二叉樹的概念    7.6.2  線索二叉樹的存儲結(jié)構(gòu)    7.6.3  線索二叉樹的操作算法  7.7  樹的存儲結(jié)構(gòu)與算法    7.7.1  樹的存儲結(jié)構(gòu)    7.7.2  樹的操作算法  7.8  HUFFMAN樹與HUFFMAN編碼    7.8.1  Huffman樹的定義    7.8.2  Huffman樹的構(gòu)造    7.8.3  Huffman編碼與譯碼    7.8.4  Huffman樹的其他應用——程序設計流程優(yōu)化  7.9  樹與等價類    7.9.1  等價類問題    7.9.2  等價類的實現(xiàn)    7.9.3  性能分析與改進  本章小結(jié)  習題7  上機實驗題7第8章  圖  8.1  圖的基本概念    8.1.1  圖的定義    8.1.2  圖的基本術(shù)語  8.2  圖的存儲結(jié)構(gòu)    8.2.1  鄰接矩陣表示法    8.2.2  鄰接表表示法  8.3  圖的遍歷    8.3.1  圖的遍歷的概念    8.3.2  深度優(yōu)先搜索    8.3.3  廣度優(yōu)先搜索    8.3.4  圖的遍歷算法的應用  8.4  最小生成樹    8.4.1  最小生成樹的概念及其性質(zhì)    8.4.2  Prim算法    8.4.3  Kruskal算法  8.5  最短路徑    8.5.1  最短路徑的概念    8.5.2  單源最短路徑    8.5.3  每對頂點之間的最短路徑  8.6  AOV網(wǎng)與拓撲排序    8.6.1  有向無環(huán)圖與AOV網(wǎng)的概念    8.6.2  拓撲排序  8.7  AOE網(wǎng)與關(guān)鍵路徑    8.7.1  AOE網(wǎng)的概念    8.7.2  關(guān)鍵路徑  本章小結(jié)  習題8  上機實驗題8第9章  查找  9.1  查找的基本概念  9.2  順序表的查找    9.2.1  順序查找    9.2.2  折半查找    9.2.3  分塊查找  9.3  樹表的查找    9.3.1  二叉排序樹    9.3.2  平衡二叉樹    9.3.3  B樹    9.3.4  B+樹  9.4  HASH查找    9.4.1  Hash查找的基本概念    9.4.2  Hash表的構(gòu)造    9.4.3  Hash查找算法及分析  本章小結(jié)  習題9  上機實驗題9第10章  排序  10.1  排序的基本概念  10.2  冒泡排序  10.3  選擇排序  10.4  插入排序    10.4.1  直接插入排序    10.4.2  折半插入排序  10.5  希爾排序  10.6  快速排序  10.7  堆排序  10.8  歸并排序    10.8.1  二路歸并排序的非遞歸實現(xiàn)    10.8.2  二路歸并排序的遞歸實現(xiàn)  10.9  基數(shù)排序    10.9.1  多關(guān)鍵字排序    10.9.2  鏈式基數(shù)排序  本章小結(jié)  習題10  上機實驗題10附錄A  數(shù)據(jù)結(jié)構(gòu)試題附錄B  數(shù)據(jù)結(jié)構(gòu)課程設計題參考文獻

章節(jié)摘錄

  第1章 緒論  “數(shù)據(jù)結(jié)構(gòu)”是計算機科學與技術(shù)、軟件工程、信息安全、信息管理與信息系統(tǒng)、信息與計算科學等專業(yè)的一門十分重要的專業(yè)核心基礎課程,主要學習計算機中數(shù)據(jù)的組織方式、存儲結(jié)構(gòu)和處理方法。數(shù)據(jù)結(jié)構(gòu)課程的學習將為計算機及相關(guān)專業(yè)的后續(xù)課程(如操作系統(tǒng)、編譯原理、數(shù)據(jù)庫原理、軟件工程等)的學習打下基礎。實際上,要編寫一個“好”的程序,無非是要選擇一個合理的數(shù)據(jù)結(jié)構(gòu)和好的算法,而“好”算法的選擇很大程度上取決于描述實際問題所采用的數(shù)據(jù)結(jié)構(gòu),因此要編寫出“好”的程序,僅僅學習程序設計語言是不夠的,必須很好地掌握數(shù)據(jù)結(jié)構(gòu)的基本知識和基本技能。本章將概要地介紹數(shù)據(jù)結(jié)構(gòu)課程的研究內(nèi)容、基本概念和基本思想。  1.1 數(shù)據(jù)結(jié)構(gòu)課程的研究內(nèi)容。  數(shù)據(jù)結(jié)構(gòu)起源于程序設計,隨著計算機科學技術(shù)的發(fā)展,計算機應用領(lǐng)域不再局限于科學計算,而更多地應用于信息處理、智能控制、辦公自動化等領(lǐng)域。計算機處理的對象由數(shù)值發(fā)展到字符串、表格、圖形、圖像、聲音等數(shù)據(jù),而且處理的數(shù)據(jù)量也越來越大。在程序設計中面對這樣的數(shù)據(jù),我們應如何來組織和處理它們呢?這就是“數(shù)據(jù)結(jié)構(gòu)”課程需要研究的問題?! ∮嬎銠C解決問題時,一般要經(jīng)過幾個步驟:首先,要將實際問題抽象出數(shù)學模型,然后針對數(shù)學模型設計出求解算法,最后編寫程序上機調(diào)試,直到求出最終結(jié)果。數(shù)值計算問題的數(shù)學模型一般可由數(shù)學方程或數(shù)學公式來描述。然而,對于非數(shù)值計算問題,例如圖書資料的檢索、人一機博弈、課程表編排、最短路徑求解等問題,它們的數(shù)學模型無法用數(shù)學方程或數(shù)學公式來描述,而是要用線性表、樹、圖等數(shù)據(jù)結(jié)構(gòu)來描述,并且要對這些模型設計相應算法來求解。數(shù)據(jù)結(jié)構(gòu)就是研究計算機非數(shù)值計算問題中的數(shù)據(jù)對象以及它們之間的關(guān)系和操作算法的學科,具體主要包含三個方面的內(nèi)容:①數(shù)據(jù)的邏輯結(jié)構(gòu);②數(shù)據(jù)的存儲結(jié)構(gòu);③數(shù)據(jù)的操作算法。

編輯推薦

  本教材在編寫過程中集作者多年“數(shù)據(jù)結(jié)構(gòu)”精品課程的教學經(jīng)驗,體現(xiàn)科學性、先進性和實用性原則,既注重基本原理,又重視算法實現(xiàn);力求內(nèi)容豐富,重點突出,條理清晰,由淺入深,語言流暢,具有特色。全書使用C++類定義各種數(shù)據(jù)結(jié)構(gòu),利用C++偽代碼描述算法;給出許多經(jīng)典算法和典型題例;每章均附有小結(jié)、習題和上機實驗題;附錄給出了5套課程考試樣卷和5道課程設計題,以供教學參考?! ”窘滩墓卜?0章。第1章簡要介紹數(shù)據(jù)結(jié)構(gòu)和算法的基本概念;第2~5章介紹線性結(jié)構(gòu)及其算法,包括線性表、棧、隊列、串、數(shù)組和特殊矩陣;第6~8章介紹非線性結(jié)構(gòu)及其算法,包括廣義表、樹、二叉樹、圖;第9章介紹各種常用的查找算法;第10章介紹各種常用的排序算法?! ”咎捉滩脑趪乙?guī)劃教材的基礎上,進行全面更新,以適應高校課程與教學改革的需要,并特別注意教材的可讀性和可用性,為任課教師提供各種教學服務。

圖書封面

評論、評分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu)教程 PDF格式下載


用戶評論 (總計1條)

 
 

  •   很好的一本書,內(nèi)容很滿意。。。。。。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7