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

出版時間:2011-1  出版社:清華大學(xué)出版社  作者:鄧文華 編  頁數(shù):225  

前言

作為獨立學(xué)院三本的學(xué)生有著其自身的特點,如果直接拿原來一本、二本的教材給獨立學(xué)院的三本學(xué)生使用是很不恰當(dāng)?shù)?,本書是在保留原?版精華基礎(chǔ)上,專門針對獨立學(xué)院三本的學(xué)生的特點,即理論夠用,著重培養(yǎng)學(xué)生的設(shè)計能力與動手能力而編寫的。“數(shù)據(jù)結(jié)構(gòu)”是計算機程序設(shè)計的重要理論基礎(chǔ),是計算機及其應(yīng)用專業(yè)的一門重要基礎(chǔ)課程和核心課程。它不僅是計算機軟件專業(yè)課程的先導(dǎo),而且也逐漸為其他工科類專業(yè)所重視。本書共分9章,第1章敘述數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和算法等基本概念。第2~6章分別討論了線性表、棧和隊列、串和數(shù)組、樹與二叉樹,以及圖等基本數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)及其應(yīng)用。第7、8章分別討論了查找和排序操作的各種實現(xiàn)方法及其特點,第9章給出了6個綜合應(yīng)用的實例程序,以便學(xué)生上機實習(xí),進(jìn)一步加強對學(xué)生實際應(yīng)用能力及動手能力的培養(yǎng)。本書具有以下特點:(1)基礎(chǔ)理論知識的闡述由淺人深、通俗易懂。內(nèi)容組織和編排以應(yīng)用為主線,略去了一些理論推導(dǎo)和數(shù)學(xué)證明的過程,淡化算法的設(shè)計分析和復(fù)雜的時空分析。(2)各章都配有相應(yīng)的典型例題或應(yīng)用,列舉分析了許多實用的例子,大多數(shù)算法都直接給出了其相應(yīng)的C語言程序,以便學(xué)生上機練習(xí)、實踐。(3)為了便于學(xué)生復(fù)習(xí)及掌握每章的重點、要點,本書在每章的結(jié)束處對該章進(jìn)行小結(jié),并列出本章的重點。(4)本書配有電子教案及習(xí)題解答,方便教師的備課與教學(xué)。本書講課時數(shù)為60~90學(xué)時左右,上機時數(shù)在20~36學(xué)時左右。教師可根據(jù)學(xué)時數(shù)、專業(yè)和學(xué)生的實際情況選講應(yīng)用與典型例題中的例子。本書由鄧文華任主編,鄒華勝任副主編。其中第1、2章由鄒華勝編寫,第3、4章由胡智文編寫,第5、6章由畢保祥編寫,第7~9章由鄧文華編寫,謝勝利也編寫了第7、8章的部分內(nèi)容。全書由鄧文華統(tǒng)稿。編寫?yīng)毩W(xué)院三本的教材是一項新的嘗試,書中難免存在疏漏,懇請讀者批評指正。

內(nèi)容概要

本書對常用的數(shù)據(jù)結(jié)構(gòu)作了系統(tǒng)的介紹,力求概念清晰,注重實際應(yīng)用。全書共分9章,依次介紹了數(shù)據(jù)結(jié)構(gòu)的基本概念、線性表、棧和隊列、串與數(shù)組、樹與二叉樹、圖結(jié)構(gòu),以及查找和排序等基本運算,第9章給出了6個綜合應(yīng)用的實例程序。全書用C語言作為算法描述語言,每一章均附有典型例題與小結(jié),便于總結(jié)與提高?! ”緯鴶⑹龊啙?、深入淺出,主要面向獨立學(xué)院三本計算機類專業(yè)的學(xué)生,也可以作為大學(xué)非計算機專業(yè)學(xué)生的選修課教材和計算機應(yīng)用技術(shù)人員的自學(xué)參考用書。

書籍目錄

第1章 緒論 1.1 從問題到程序 1.2 有關(guān)概念和術(shù)語 1.3 算法及算法分析  1.3.1 算法特性  1.3.2 算法描述  1.3.3 算法分析 1.4 關(guān)于數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí) 1.5 關(guān)于本書的編寫說明 本章 小結(jié) 習(xí)題1第2章 線性表 2.1 線性表的邏輯結(jié)構(gòu)  2.1.1 線性表的定義  2.1.2 線性表的基本操作 2.2 線性表的順序存儲及其操作的實現(xiàn)  2.2.1 順序表  2.2.2 順序表基本操作的實現(xiàn)  2.2.3 順序表的其他操作舉例 2.3 線性表的鏈?zhǔn)酱鎯捌洳僮鞯膶崿F(xiàn)  2.3.1 單鏈表  2.3.2 單鏈表基本操作的實現(xiàn)  2.3.3 循環(huán)鏈表  2.3.4 雙向鏈表  2.3.5 單鏈表的其他操作舉例 2.4 典型應(yīng)用  2.4.1 一元多項式的存儲表示  2.4.2 一元多項式的相加運算 本章小結(jié) 習(xí)題2第3章 棧和隊列 3.1 ?! ?.1.1 棧的定義及其基本運算  3.1.2 棧的存儲結(jié)構(gòu)和基本運算的實現(xiàn)  3.1.3 棧的應(yīng)用舉例  3.1.4 棧與遞歸的實現(xiàn) 3.2 隊列  3.2.1 隊列的定義及其基本運算  3.2.2 隊列的存儲結(jié)構(gòu)和基本運算的實現(xiàn)  3.2.3 隊列的應(yīng)用舉例 3.3 典型例題 本章小結(jié) 習(xí)題3第4章 串和數(shù)組第5章 樹與二叉樹第6章 圖第7章 查找第8章 排序第9章 綜合應(yīng)用實例參考文獻(xiàn) 

章節(jié)摘錄

插圖:(4)輸入:一個算法具有零個或多個輸入,這些輸入取自特定的數(shù)據(jù)對象集合。(5)輸出:一個算法具有一個或多個輸出,這些輸出同輸人之間存在某種特定的關(guān)系。算法的含義與程序十分相似,但又有區(qū)別。一個程序不一定滿足有窮性。例如,操作系統(tǒng),只要整個系統(tǒng)不遭破壞,它將永遠(yuǎn)不會停止,即使沒有作業(yè)需要處理,它仍處于動態(tài)等待中。因此,操作系統(tǒng)不是一個算法。另一方面,程序中的指令必須是機器可執(zhí)行的,而算法中的指令則無此限制。算法代表了對問題的求解方法,而程序則是算法在計算機上的特定的實現(xiàn)。一個算法若用程序設(shè)計語言來描述,則它就是一個程序。算法與數(shù)據(jù)結(jié)構(gòu)是相輔相成的。解決某一類特定問題的算法可以選擇不同的數(shù)據(jù)結(jié)構(gòu),而且選擇恰當(dāng)與否直接影響算法的效率;反之,一種數(shù)據(jù)結(jié)構(gòu)的優(yōu)劣由各種算法的執(zhí)行效果來體現(xiàn)。在設(shè)計算法時通常需要考慮以下幾個方面的要求。(1)正確性:算法的執(zhí)行結(jié)果應(yīng)當(dāng)滿足預(yù)先規(guī)定的功能和性能要求。正確性要求表明算法必須滿足實際需求,達(dá)到解決實際問題的目標(biāo)。(2)可讀性:一個算法應(yīng)當(dāng)思路清晰、層次分明、簡單明了、易讀易懂。可讀性要求表明算法主要是人與人之間交流解題思路和進(jìn)行軟件設(shè)計的工具,因此可讀性必須要強。同時一個可讀性強的算法,其程序的可維護(hù)性、可擴展性都要好許多,因此,許多時候人們往往在一定程度上以犧牲效率來提高可讀性。(3)健壯性:當(dāng)輸入不合法數(shù)據(jù)時,應(yīng)能作適當(dāng)處理,不至于引起嚴(yán)重后果。健壯性要求表明算法要全面細(xì)致地考慮所有可能的邊界情況,并對這些邊界條件作出完備的處理,盡可能使算法沒有意外的情況。(4)高效性:有效使用存儲空間和有較好的時間效率。高效性主要是指時間效率,即解決相同規(guī)模的問題時間盡可能短。一般來說,數(shù)據(jù)結(jié)構(gòu)上的基本操作主要有以下幾種。(1)查找:尋找滿足特定條件的數(shù)據(jù)元素所在的位置。(2)讀取:讀出指定位置上數(shù)據(jù)元素的內(nèi)容。(3)插入:在指定位置上添加新的數(shù)據(jù)元素。(4)刪除:刪去指定位置上對應(yīng)的數(shù)據(jù)元素。(5)更新:修改某個數(shù)據(jù)元素的值。

編輯推薦

《數(shù)據(jù)結(jié)構(gòu)(C語言版)(第3版)》:案例驅(qū)動的教學(xué)模式,一線優(yōu)秀教師擔(dān)綱編寫,立體化教學(xué)資源解決方案。

圖書封面

評論、評分、閱讀與下載


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


用戶評論 (總計1條)

 
 

  •   效率很高,正好趕在我上課前到
 

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

京ICP備13047387號-7