出版時間:2009-8 出版社:人民郵電出版社 作者:李云清,楊慶紅,揭安全 編著 頁數(shù):266
Tag標簽:無
前言
數(shù)據(jù)結構是計算機專業(yè)重要的專業(yè)基礎課程與核心課程之一。從2009年開始,全國碩士研究生入學統(tǒng)一考試計算機科學與技術學科實行全國聯(lián)考,考試科目定名為計算機學科專業(yè)基礎綜合,該考試科目涵蓋4門課程,數(shù)據(jù)結構為其中重要的1門,其所占比例和分值最高?! ?shù)據(jù)結構課程主要是學習基本數(shù)據(jù)結構及其應用、檢索和排序算法的各種實現(xiàn)方法與分析比較,對于選用何種描述工具對數(shù)據(jù)結構和算法進行描述,我們認為各有千秋。通過近幾年教學實踐和教學改革研究表明,在數(shù)據(jù)結構教學中,對數(shù)據(jù)結構本質和各種算法思想的掌握與理解并不是依賴于描述工具。實踐表明,對于熟練掌握C語言的讀者,使用C語言描述算法,讀者可以將學習精力集中于算法思想的理解,有利于數(shù)據(jù)結構的教學?! 檫m應我國計算機科學技術的應用和發(fā)展,進一步提高汁算機專業(yè)和相關專業(yè)“數(shù)據(jù)結構”課程的教學質量,2004年,筆者根據(jù)多年教學的體會,結合高等教育大眾化的趨勢,在分析國內、外多種同類教材的基礎上,編寫出版了《數(shù)據(jù)結構(C語言版)》。該書先后印刷多次,受到讀者的關注和歡迎?! ”緯拚说?版中的一些錯誤,對全書內容做了進一步的優(yōu)化、補充和完善。主要的修訂如下?! ?.對基本的數(shù)據(jù)結構,重點討論其基本操作,仍然采用抽象數(shù)據(jù)類型的觀點進行描述。在第1版中,對一個數(shù)據(jù)結構討論時,我們往往給出了較多的操作,比如插入操作,就有“在某個位置插入”和“在某個元素值后插入”等,在修訂時,我們對操作進行了刪減與合并,每一種數(shù)據(jù)結構只對主要的操作算法進行討論和描述,這樣既突出了重點,又可以保證教學效果?! ?.盡量使用簡短、容易記憶的函數(shù)名。在第1版中,我們在對算法實現(xiàn)的函數(shù)命名時,使用了較為完整的表達形式,如第1版中,建立一個空的鏈式棧的函數(shù)為initlinkstack(),第2版中改為init()。我們在教學中發(fā)現(xiàn),在C語言編程環(huán)境下,使用簡潔的函數(shù)名更適合教學需要。
內容概要
本書介紹了數(shù)據(jù)結構的基本概念和基本算法。全書共分為10章,包括線性表及其順序存儲、線性表的鏈式存儲、字符串、數(shù)組、特殊矩陣、遞歸、樹型結構、二叉樹、圖、檢索、內排序等內容?! ”緯鴥热葚S富,邏輯性強,文字清晰流暢,既注重理論知識,又強調工程實用。書中既體現(xiàn)了抽象數(shù)據(jù)類型的觀點,又對每個算法的具體實現(xiàn)給出了完整的C語言源代碼描述?! ∨c本書配套的電子教案和書中所有算法的源代碼均可從人民郵電出版社教學服務與資源網(wǎng)(www. ptpedu.com.cn)上免費下載?! ”緯勺鳛楦叩仍盒S嬎銠C專業(yè)及相關專業(yè)本科生“數(shù)據(jù)結構”課程的教材,也可以作為從事計算機工程與應用的廣大讀者的參考書。
書籍目錄
第1章 概論 1.1 數(shù)據(jù)結構的基本概念與術語 1.1.1 數(shù)據(jù)結構的基本概念 1.1.2 數(shù)據(jù)的邏輯結構 1.1.3 數(shù)據(jù)的存儲結構 1.1.4 數(shù)據(jù)的運算集合 1.2 數(shù)據(jù)類型和抽象數(shù)據(jù)類型 1.2.1 數(shù)據(jù)類型 1.2.2 抽象數(shù)據(jù)類型 1.2.3 抽象數(shù)據(jù)類型的描述和實現(xiàn) 1.3 算法和算法分析 1.3.1 算法的基本概念和基本特征 1.3.2 算法的時間復雜度和空間復雜度 習題 第2章 線性表及其順序存儲 2.1 線性表 2.2 順序表 2.2.1 順序表的基本概念及描述 2.2.2 順序表的實現(xiàn) 2.3 ?! ?.3.1 棧的基本概念及描述 2.3.2 順序棧及其實現(xiàn) 2.3.3 棧的應用之一——括號匹配 2.3.4 棧的應用之二——算術表達式求值 2.4 隊列 2.4.1 隊列的基本概念及描述 2.4.2 順序隊列及其實現(xiàn) 2.4.3 順序循環(huán)隊列及其實現(xiàn) 習題 第3章 線性表的鏈式存儲 3.1 鏈式存儲 3.2 單鏈表 3.2.1 單鏈表的基本概念及描述 3.2.2 單鏈表的實現(xiàn) 3.3 帶頭結點的單鏈表 3.3.1 帶頭結點的單鏈表的基本概念及描述 3.3.2 帶頭結點的單鏈表的實現(xiàn) 3.4 循環(huán)單鏈表 3.4.1 循環(huán)單鏈表的基本概念及描述 3.4.2 循環(huán)單鏈表的實現(xiàn) 3.5 雙鏈表 3.5.1 雙鏈表的基本概念及描述 3.5.2 雙鏈表的實現(xiàn) 3.6 鏈式棧 3.6.1 鏈式棧的基本概念及描述 3.6.2 鏈式棧的實現(xiàn) 3.7 鏈式隊列 3.7.1 鏈式隊列的基本概念及描述 3.7.2 鏈式隊列的實現(xiàn) 習題 第4章 字符串、數(shù)組和特殊矩陣 4.1 字符串 4.1.1 字符串的基本概念 4.1.2 字符串類的定義 4.1.3 字符串的存儲及其實現(xiàn) 4.2 字符串的模式匹配 4.2.1 樸素的模式匹配算法 4.2.2 快速模式匹配算法 4.3 數(shù)組 4.3.1 數(shù)組和數(shù)組元素 4.3.2 數(shù)組類的定義 4.3.3 數(shù)組的順序存儲及實現(xiàn) 4.4 特殊矩陣 4.4.1 對稱矩陣的壓縮存儲 4.4.2 三角矩陣的壓縮存儲 4.4.3 帶狀矩陣的壓縮存儲 4.5 稀疏矩陣 4.5.1 稀疏矩陣類的定義 4.5.2 稀疏矩陣的順序存儲及其實現(xiàn) 4.5.3 稀疏矩陣的鏈式存儲及實現(xiàn) 習題 第5章 遞歸 第6章 樹型結構 第7章 二叉樹 第8章 圖 第9章 檢索 第10章 內排序 參考文獻
章節(jié)摘錄
1.數(shù)據(jù)的邏輯結構 這些數(shù)據(jù)之間存在什么樣的內在聯(lián)系?在這些數(shù)據(jù)中,有且只有一個結點是表首結點,它前面沒有其他結點,后面有一個和它相鄰的結點;有且只有一個結點是表尾結點,它后面沒有其他結點,前面有一個和它相鄰的結點;除這兩個結點之外,表中所有其他的結點都有且僅有一個和它相鄰的位于它之前的結點,也有且僅有一個和它相鄰的位于它之后的結點。上述這些就是用戶信息表的邏輯結構。 2.數(shù)據(jù)的存儲結構 數(shù)據(jù)在計算機中的存儲方式稱為存儲結構。將用戶信息表中的所有結點存人計算機時,就必須考慮存儲結構。使用C語言進行設計時,常見的方式是用一個結構數(shù)組來存儲整個用戶信息表,每一個結構數(shù)組元素是一個結構,它對應于用戶信息表中的一個結點。用戶信息表中相鄰的結點,對應的結構數(shù)組元素也是相鄰的,或者說在這種存儲方式下,邏輯相鄰的結點就必須物理相鄰。這是一種被稱為順序存儲的方式,當然,還有其他的存儲方式?! ?.數(shù)據(jù)的運算集合 對數(shù)據(jù)的處理必定涉及到相關的運算。在上述用戶信息表中,可以進行刪除一個用戶、增加一個用戶和查找某個用戶等操作。應該明確指出這些操作的含義。比如刪除操作,是刪除序號為5的用戶還是刪除用戶名為王三的用戶是應該明確定義的,如果需要可以定義兩個不同的刪除操作。為一批數(shù)據(jù)定義的所有運算(或稱操作)構成一個運算(操作)集合?! τ谝慌幚淼臄?shù)據(jù),只有分析清楚上面3個方面的問題,才能進行有效的處理?! ?shù)據(jù)結構就是指按一定的邏輯結構組成的一批數(shù)據(jù),使用某種存儲結構將這批數(shù)據(jù)存儲于計算機中,并在這些數(shù)據(jù)上定義了一個運算集合?! ≡谟懻撘粋€數(shù)據(jù)結構時,數(shù)據(jù)結構所含的3個方面缺一不可,也就是說,只有給定一批數(shù)據(jù)的邏輯結構和它們在計算機中的存儲結構,并且定義了數(shù)據(jù)運算集合,才能確定一個數(shù)據(jù)結構。例如,在后面的章節(jié)中將要介紹的棧和隊列,它們的邏輯結構是一樣的,它們都可以用同樣的存儲結構,但是由于所定義的運算性質不同,它們成為兩種不同的數(shù)據(jù)結構。
編輯推薦
理論與實踐并重,內容涵蓋考研大綱要求。算法要點有詳細的圖示,算法采用C語言描述,可以直接調用。教學資源豐富,提供教學計件、所有算法的源代碼、測試用例等。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載