出版時間:2009-1 出版社:電子工業(yè)出版社 作者:葉核亞 頁數(shù):305
Tag標簽:無
前言
數(shù)據(jù)結構是軟件設計的重要理論和實踐基礎,數(shù)據(jù)結構設計和算法設計是軟件系統(tǒng)設計的核心?!皵?shù)據(jù)結構”課程討論的知識內(nèi)容是軟件設計的理論基礎。“數(shù)據(jù)結構”課程介紹的技術方法是軟件設計中使用的基本方法?!皵?shù)據(jù)結構”是理論與實踐并重的課程,要求學生既要掌握數(shù)據(jù)結構的基礎理論知識,又要掌握運行和調(diào)試程序的基本技能。因此,“數(shù)據(jù)結構”課程在計算機類各專業(yè)本科學生的培養(yǎng)過程中有著十分重要的地位,是計算機類專業(yè)的一門核心課程,是培養(yǎng)程序設計能力的必不可少的重要環(huán)節(jié)。
內(nèi)容概要
《數(shù)據(jù)結構(C++版)(第2版)》全面系統(tǒng)地介紹數(shù)據(jù)結構的基礎理論和算法設計方法,包括線性表、樹、圖等數(shù)據(jù)結構以及查找和排序算法。內(nèi)容涉及的廣度和深度符合計算機專業(yè)本科的基本要求,體現(xiàn)了本科教學的培養(yǎng)目標?! 稊?shù)據(jù)結構(C++版)(第2版)》采用C++語言,以面向對象方法描述數(shù)據(jù)結構和算法?!稊?shù)據(jù)結構(C++版)(第2版)》理論敘述精練,結構安排合理,重點是數(shù)據(jù)結構設計和算法設計,通過降低理論難度和抽象性、加強實踐環(huán)節(jié)等措施,力求增強學生的理解能力和應用能力。
書籍目錄
第1章 緒論1.1 數(shù)據(jù)結構的基本概念1.1.1 為什么要學習數(shù)據(jù)結構1.1.2 什么是數(shù)據(jù)結構1.1.3 數(shù)據(jù)類型與抽象數(shù)據(jù)類型1.2 算法1.2.1 什么是算法1.2.2 算法分析1.2.3 算法設計習題1實驗1 算法設計與分析第2章 線性表2.1 線性表抽象數(shù)據(jù)類型2.2 線性表的順序表示和實現(xiàn)2.3 線性表的鏈式表示和實現(xiàn)2.3.1 線性表的鏈式存儲結構2.3.2 單鏈表2.3.3 雙鏈表習題2實驗2 線性表順序存儲結構和鏈式存儲結構的基本操作第3章 串3.1 串抽象數(shù)據(jù)類型3.1.1 串的基本概念3.1.2 串抽象數(shù)據(jù)類型3.2 串的表示和實現(xiàn)3.2.1 串的存儲結構3.2.2 字符串類3.3 串的模式匹配3.3.1 樸素的模式匹配(Bmte.Force)算法3.3.2 無回溯的模式匹配(KMP)算法習題3實驗3 串的基本操作及模式匹配算法第4章 棧和隊列4.1 棧4.1.1 棧抽象數(shù)據(jù)類型4.1.2 順序棧4.1.3 鏈式棧4.1.4 棧的應用4.2 隊列4.2.1 隊列抽象數(shù)據(jù)類型4.2.2 順序隊列4.2.3 鏈式隊列4.2.4 隊列的應用4.3 優(yōu)先隊列4.4 遞歸習題4實驗4 棧和隊列以及遞歸算法第5章 數(shù)組和廣義表5.1 數(shù)組5.1.1 一維數(shù)組5.1.2 多維數(shù)組5.2 特殊矩陣的壓縮存儲5.2.1 對稱(三角)矩陣的存儲5.2.2 稀疏矩陣的壓縮存儲5.3 廣義表5.3.1 廣義表抽象數(shù)據(jù)類型513.2 廣義表的存儲結構習題5實驗5 矩陣的存儲和運算第6章 樹和二叉樹6.1 樹及其抽象數(shù)據(jù)類型6.1.1 樹的定義6.1.2 樹的術語6.1.3 樹的表示法6.1.4 樹抽象數(shù)據(jù)類型6.2 二叉樹及其抽象數(shù)據(jù)類型6.2.1 二叉樹定義6.2.2 二叉樹的性質(zhì)6.2.3 二叉樹的遍歷規(guī)則6.2.4 二叉樹抽象數(shù)據(jù)類型6.3 二叉樹的表示和實現(xiàn)6.3.1 二叉樹的存儲結構6.3.2 二叉樹的二叉鏈表實現(xiàn)6.4 線索二叉樹6.4.1 線索二叉樹定義6.4.2 中序線索二叉樹6.5 哈夫曼編碼與哈夫曼樹6.5.1 哈夫曼編碼6.5.2 哈夫曼樹6.6 樹的表示和實現(xiàn)6.6.1 樹的存儲結構6.6.2 樹的孩子兄弟鏈表實現(xiàn)習題6實驗6 樹和二叉樹的基本操作第7章 圖7.1 圖及其抽象數(shù)據(jù)類型7.1.1 圖的基本概念7.1.2 圖抽象數(shù)據(jù)類型7.2 圖的表示和實現(xiàn)7.2.1 圖的鄰接矩陣表示7.2.2 圖的鄰接表表示7.2.3 圖的鄰接多重表表示7.3 圖的遍歷7.3.1 圖的深度優(yōu)先搜索遍歷7.3.2 圖的廣度優(yōu)先搜索遍歷7.4 最小生成樹7.4.1 生成樹7.4.2 最小生成樹的構造算法7.5 最短路徑7.5.1 非負權值的單源最短路徑7.5.2 每對頂點間的最短路徑習題7實驗7 圖的表示和操作第8章 查找8.1 查找的基本概念8.2 基于線性表的查找8.2.1 順序查找8.2.2 基于有序順序表的折半查找8.2.3 基于索引順序表的分塊查找8.3 散列8.3.1 散列表8.3.2 散列函數(shù)8.3.3 處理沖突8.3.4 鏈地址法的散列表8.4 二叉排序樹和平衡二叉樹8.4.1 二叉排序樹及其查找8.4.2 平衡二叉樹習題8實驗8 查找算法及其效率分析第9章 排序9.1 排序的基本概念9.2 插入排序9.2.1 順序查找9.2.2 希爾排序9.3 交換排序9.3.1 冒泡排序9.3.2 快速排序9.4 選擇排序9.4.1 直接選擇排序9.4.2 堆排序9.5 歸并排序習題9實驗9 排序算法設計及分析第10章 綜合應用設計10.1 算法分析10.1.1 時間代價分析10.1.2 空間代價分析10.2 算法設計策略10.2.1 分治法10.2.2 動態(tài)規(guī)劃法10.2.3 貪心法10.2.4 回溯法10.3 課程設計的目的、要求和選題第11章 Visual C++集成開發(fā)環(huán)境11.1 visualC++6.0集成開發(fā)環(huán)境11.2 編輯、編譯和運行c++程序11.2.1 新建、編輯、編譯和運行一個C++程序11.2.2 一個項目包含頭文件和c++程序11.2.3 一個工作區(qū)包含多個項目11.3 程序調(diào)試技術11.3.1 程序錯誤、發(fā)現(xiàn)時刻及錯誤處理原則11.3.2 程序運行方式11.3.3 調(diào)試界面11.3.4 調(diào)試過程附錄A ASCII碼表(前128個)附錄B 運算符及其優(yōu)先級附錄C VisuaIC++6.O常用菜單命令及說明參考文獻
章節(jié)摘錄
順序表通常采用數(shù)組存儲數(shù)據(jù)元素。將線性表的數(shù)據(jù)元素順序存放在數(shù)組中,數(shù)據(jù)元素在數(shù)組中的物理順序與線性表中元素的順序關系完全相同?! ?shù)組是順序存儲的隨機存取結構,占用一組連續(xù)的存儲單元,通過下標(序號)識別元素,元素地址是下標的線性函數(shù)。一個下標能夠唯一確定一個元素,存取任何一個元素所花費的時間是在程序設計語言中,數(shù)組已被實現(xiàn)為一種構造數(shù)據(jù)類型。數(shù)組一旦占用一片存儲空間,這片存儲空間的地址和長度就是確定的,不能更改。因此,數(shù)組只能進行賦值、取值兩種隨機存取操作,不能進行插入、刪除操作。數(shù)組的內(nèi)存分配有靜態(tài)和動態(tài)兩種方式,靜態(tài)數(shù)組和動態(tài)數(shù)組都是定長的,當數(shù)組容量不夠時,都不能就地擴容?! ?.順序表的插入和刪除操作順序表的插入和刪除操作要移動數(shù)據(jù)元素。在順序表元素位置插入元素,首先必須將元素向后移動,空出一個位置,然后將插入,元素移動過程?! ∪鐖D2.2 如果數(shù)組已滿,則不能插入,稱為數(shù)據(jù)溢出。解決數(shù)據(jù)溢出的辦法是,申請另一個更大容量的數(shù)組并復制全部數(shù)組元素,這樣就擴充了順序表的容量。
編輯推薦
《數(shù)據(jù)結構(C++版)(第2版)》有配套的教學資料包,包括源代碼、電子課件及習題解答。《數(shù)據(jù)結構(C++版)(第2版)》可作為普通高等學校計算機及相近專業(yè)學生的數(shù)據(jù)結構課程的教材,也可作為從事計算機軟件開發(fā)和工程應用人員的參考書。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載