出版時間:2010-2 出版社:中國電力出版社 作者:王聰華 編 頁數(shù):207
前言
計算機從誕生的那一天起就與數(shù)據(jù)處理緊密相關(guān),最初的想法是用于解決科學(xué)上復(fù)雜、繁重的數(shù)值計算問題,以減輕腦力勞動、提高運算效率。隨著計算機科學(xué)技術(shù)的發(fā)展,計算機解決問題的范圍也更加廣泛,目前已涉及字符、文字、圖形、圖像、聲音等非數(shù)值計算問題。數(shù)據(jù)結(jié)構(gòu)主要以非數(shù)值計算問題為研究對象,研究數(shù)據(jù)的表示、數(shù)據(jù)之間的關(guān)系和數(shù)據(jù)處理的算法。它是計算機專業(yè)及其他信息類專業(yè)的重要基礎(chǔ)課和核心課,也是軟件設(shè)計的重要支撐基礎(chǔ)。本教材編寫的主導(dǎo)思想是解決欠發(fā)達地區(qū)高校學(xué)生層次較低、基礎(chǔ)較差、學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程有一定困難的問題,定位于應(yīng)用型本科層次。教材不拘泥于“五臟齊全”,主要著眼于數(shù)據(jù)結(jié)構(gòu)的基本概念、知識點和基本的算法,以及數(shù)據(jù)結(jié)構(gòu)解決問題的思想和方法,重點訓(xùn)練和培養(yǎng)學(xué)生程序設(shè)計的基本能力和思維,力求為操作系統(tǒng)原理、編譯原理等后續(xù)課程的學(xué)習(xí)奠定基礎(chǔ)。依據(jù)主導(dǎo)思想,教材在寫作上語言通俗,講解細膩,表達精練,盡量避免出現(xiàn)深奧的專業(yè)術(shù)語。在內(nèi)容安排上結(jié)構(gòu)清晰、層次分明,力求突出重點,分解難點,算法表達精練、易讀易懂;注重應(yīng)用,講究實用。教材共分為9章。第1章介紹數(shù)據(jù)結(jié)構(gòu)的概念和基本術(shù)語,算法和算法分析;第2章介紹線性表的順序存儲和鏈?zhǔn)浇Y(jié)構(gòu),以及基本運算的實現(xiàn);第3章介紹棧和隊列概念、存儲、基本運算和應(yīng)用:第4章介紹串的概念、存儲和基本運算,模式匹配算法,數(shù)組的概念和存儲,特殊矩陣和稀疏矩陣的存儲;第5章介紹樹和二叉樹的概念、存儲和基本運算,線索二叉樹的概念、創(chuàng)建和遍歷算法;第6章介紹圖的概念、各種存儲結(jié)構(gòu)和圖的應(yīng)用,圖的遍歷和圖的應(yīng)用;第7章介紹各種查找算法的實現(xiàn)過程;第8章介紹各種內(nèi)排序算法的實現(xiàn);第9章介紹各種文件組織方式。教材每章之后都配有一定數(shù)量的習(xí)題,習(xí)題種類豐富,既考慮到數(shù)據(jù)結(jié)構(gòu)各章節(jié)基本概念和知識點的掌握,也考慮到算法設(shè)計能力的訓(xùn)練和提高,讀者可以通過做練習(xí)和上機調(diào)試程序,加深對概念和算法的理解,鞏固和提高所學(xué)知識,提高分析問題和解決問題的能力。與本教材配套出版的還有實驗指導(dǎo)書,該書中有大量的習(xí)題參考答案、實驗實例和模擬試卷,以供讀者配合數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)。教材中的全部算法用c語言描述,配套實驗指導(dǎo)書中所涉及的算法實現(xiàn)全部以VisualC++的環(huán)境為基礎(chǔ),讀者的學(xué)習(xí)可以完全依托于Windows操作系統(tǒng)。使用本教材授課時,實驗題目可采用配套實驗指導(dǎo)書的內(nèi)容。本書由楊興運主審。本教材的作者都有著多年的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)經(jīng)驗,并對教材的編寫和算法的設(shè)計傾注了大量的精力,但課程所涉及的內(nèi)容較多,算法數(shù)量大、細節(jié)多,難免存在錯誤和不足,敬請同行專家和讀者批評指正。
內(nèi)容概要
本書為21世紀高等學(xué)校規(guī)劃教材。本書主要內(nèi)容包括數(shù)據(jù)結(jié)構(gòu)的概念和術(shù)語、線性表、棧與隊列、串與數(shù)組、廣義表、樹與二叉樹、圖及應(yīng)用、查找和排序。每章之后配有多種類型的習(xí)題,方便讀者加深對所學(xué)基本概念的理解,鞏固所學(xué)知識。與本教材配套的還有實驗指導(dǎo)書,方便讀者上機訓(xùn)練和實踐。本教材力求語言通俗,講解細膩,概念表述簡明、嚴謹;力求突出重點,分解難點,算法表達精練、易讀易懂;注重應(yīng)用實踐,注意訓(xùn)練學(xué)生的應(yīng)用和實踐能力。 本書可作為應(yīng)用型本科計算機及相關(guān)專業(yè)的教材,也可供自學(xué)人員及工程技術(shù)人員學(xué)習(xí)參考。
書籍目錄
前言第1章 緒論 1.1 數(shù)據(jù)結(jié)構(gòu)研究的問題 1.2 基本概念與術(shù)語 1.3 算法和算法分析 1.4 算法描述工具簡介 1.5 本章小結(jié) 1.6 習(xí)題第2章 線性表 2.1 線性表的基本概念 2.2 線性表的順序存儲結(jié)構(gòu)及運算 2.3 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)及運算 2.4 線性鏈表的應(yīng)用舉例 2.5 本章小結(jié) 2.6 習(xí)題第3章 棧和隊列 3.1 棧 3.2 隊列 3.3 本章小結(jié) 3.4 習(xí)題第4章 串、數(shù)組和廣義表 4.1 串 4.2 串的模式匹配 4.3 數(shù)組 4.4 稀疏矩陣 4.5 廣義表 4.6 本章小結(jié) 4.7 習(xí)題第5章 樹和二叉樹 5.1 樹的定義與基本術(shù)語 5.2 二叉樹 5.3 哈夫曼樹 5.4 線索二叉樹 5.5 樹和森林 5.6 樹和森林的遍歷 5.7 本章小結(jié) 5.8 習(xí)題第6章 圖 6.1 圖的基本概念 6.2 圖的存儲表示 6.3 圖的遍歷 6.4 最小生成樹 6.5 最短路徑 6.6 拓撲排序 6.7 AOE網(wǎng)與關(guān)鍵路徑 6.8 本章小結(jié) 6.9 習(xí)題第7章 查找 7.1 基本概念 7.2 順序查找 7.3 有序表的二分查找 7.4 分塊查找 7.5 二叉排序樹 7.6 哈希表查找 7.7 本章小結(jié) 7.8 習(xí)題第8章 內(nèi)部排序 8.1 排序的基本概念 8.2 插入排序 8.3 選擇排序 8.4 交換排序 8.5 歸并排序 8.6 基數(shù)排序 8.7 本章小結(jié) 8.8 習(xí)題第9章 文件 9.1 文件的基本概念 9.2 文件的結(jié)構(gòu) 9.3 順序文件 9.4 索引文件 9.5 ISAM文件和VSAM文件 9.6 散列文件 9.7 多關(guān)鍵字文件 9.8 習(xí)題參考文獻
章節(jié)摘錄
插圖:2.算法的特性算法除了求解步驟的順序性之外還具有以下五個重要特征。(1)有窮性。是指一個算法的操作步驟必須是有限的。換句話說,任何問題在經(jīng)過有限個步驟之后,一定能夠完成,因為用計算機求解問題不允許無限計算下去卻永遠得不到結(jié)果。(2)確定性。它要求每一個步驟所要執(zhí)行的操作或運算必須是完全確定的,不能似是而非。因為計算機不像人一樣能靈活判斷分析,只能按算法的步驟機械地執(zhí)行規(guī)定的動作,當(dāng)某個步驟的操作有歧義性時,機器將不知道該如何做。(3)可行性。這是指算法的每一個步驟,計算機都能執(zhí)行。計算機所能執(zhí)行的動作是預(yù)先設(shè)計好的,一旦出廠就不會改變,所以,設(shè)計算法時應(yīng)保證每個步驟都必須能用計算機所能執(zhí)行的操作命令實現(xiàn)。(4)輸入性。一個算法應(yīng)該有0個以上的輸入數(shù)據(jù)。算法是數(shù)據(jù)加工處理過程的控制程序,而數(shù)據(jù)是被處理的原材料,執(zhí)行一個算法首先應(yīng)提供這些數(shù)據(jù),當(dāng)然,有些問題的算法可能不需要輸入數(shù)據(jù),這并不意味著沒有數(shù)據(jù)處理,而是被處理的數(shù)據(jù)已經(jīng)在機器內(nèi),或者是在加工處理中生成的。(5)輸出性。每個算法必須有1個以上的輸出數(shù)據(jù)。無論如何,算法執(zhí)行完后,一定要給出一個結(jié)果,或者是寫出結(jié)果數(shù)據(jù),或者是一個明確的是或不是、成功或不成功、對或錯的回答信息,或者是算法本身出現(xiàn)的錯誤提示等。1.3.2算法的描述(1)自然語言描述。用人類通常使用的語言表示算法。該方法的優(yōu)點是自然、方便,易讀、易理解;缺點是存在歧義性。(2)圖形描述。用某些圖形表示算法步驟和控制流程。該方法的優(yōu)點是簡單、直觀、形象、容易閱讀理解;缺點是對于復(fù)雜的算法可能產(chǎn)生很大圖形,畫圖和閱讀不方便。(3)某種類語言描述。類語言是介于自然語言和形式化的編程語言之間的一種專用語言。如常用的類c、類c++、類Pascal、類Java等。它們形式上像程序設(shè)計語言,但不拘泥于嚴格的語法規(guī)則,具有自然語言那種較靈活自由的性質(zhì)。(4)某種編程語言描述。用某種編程語言描述就是程序??梢灾苯泳幾g執(zhí)行。由于編程語言的嚴格語法約束,一般不使用,只有當(dāng)算法上機實現(xiàn)時才使用。以下用實例分別說明自然語言和類c語言描述算法的基本方法。
編輯推薦
《數(shù)據(jù)結(jié)構(gòu)(C語言版)》:21世紀高等學(xué)校規(guī)劃教材
圖書封面
評論、評分、閱讀與下載
數(shù)據(jù)結(jié)構(gòu) PDF格式下載