數據結構及應用

所属分类:編程語言與程序設計  
出版时间:2011-1   出版时间:沈華、 等 機械工業出版社 (2011-01出版)   作者:沈華   页数:275  

前言

在計算機科學中,數據結構是一種在計算機中組織和存儲數據,以便高效利用這些數據的有效方式。幾乎所有的程序或軟件系統都用到了數據結構。數據結構是許多高效算法的基本要素,同時它也使得管理大規模數據成為可能。數據結構課程是計算機科學的一門非常重要的專業基礎課,也是IT類各專業的核心基礎課。數據結構中的數據和結構是兩個緊密聯系而又相互關聯的概念,數據是數據結構的主要組成部分,它不涉及數據之間的關系;結構才涉及而且只涉及數據之間的關系。從中文構詞上來看,數據結構更強調的是結構,即數據之間的關聯方式。我們需要將適用于計算機的問題求解策略用計算機能理解的形式輸入到計算機中,告訴計算機如何一步一步地處理數據並最終得到問題的解,這就是算法。因此,從抽象層面上講,數據結構是為算法服務的。不同的應用需求需要不同的算法,不同的算法需要不同的數據結構來支持。從實現層面上講,數據結構是為算法實現服務的。本書作者具有多年的教學和科研經驗,對各種數據結構及應用算法有深入的了解。本書對什麼是數據結構,什麼是算法,算法和數據結構之間的關系進行了生動的闡述,並對各種線性數據結構、非線性數據結構、查找算法和排序算法等作了詳盡的描述和分析。本書基本概念清晰,重點和難點問題討論深入,而且循序漸進,為讀者深入理解和應用數據結構給出了啟示。本書既注重對數據結構經典內容的論述,又強調數據結構的應用,對相關內容進行了啟發式討論,是一本值得閱讀和選用的教科書。

内容概要

  《数据结构及应用:C语言描述》系统地介绍各种常用的数据结构以及排序、查找的各种算法,阐述各种数据结构的逻辑关系、存储表示及运算,涵盖研究生入学考试大纲的所有内容。全书采用c语言作为数据结构和算法的描述语言,并对C语言描述的算法作了详细的注解和简要的性能分析。全书共分为六个部分:第一部分主要介绍什么是数据结构,什么是算法,它们之间有着怎样的联系,如何进行算法分析;第二部分针对后续学习的需要帮助读者温习一些相关知识;第三部分和第四部分分别重点介绍几种常见的线性结构和非线性结构;第五部分介绍在实际应用中最常遇到的两个运算——查找(即搜索)和排序,以及实现这两种运算的各种算法;第六部分则简要介绍文件和外排序的相关内容。 为了帮助读者直观、正确地理解各种数据结构和算法的要旨,《数据结构及应用:C语言描述》利用大量的图表进行诠释,并通过典型的思考题、例题和习题来加深读者对相关知识的理解。 《数据结构及应用:C语言描述》内容丰富、概念清楚、逻辑推理严谨、通俗易懂,可以作为计算机科学与技术及相关专业本科生的教材,也可以作为高等院校计算机专业硕士研究生入学考试的复习用书,同时还可以作为广大工程技术人员的参考资料。

书籍目录

序前言教學建議第一部分 概論第1章 數據結構1.1 什麼是數據1.2 什麼是數據結構1.2.1 數據的邏輯結構1.2.2 數據的存儲結構1.2.3 數據的運算1.3 什麼是數據類型1.4 知識點小結習題第2章 算法2.1 什麼是算法2.2 算法的描述2.3 算法分析2.3.1 時間復雜度2.3.2 漸近符號2.3.3 空間復雜度2.3.4 復雜度分析舉例2.4 知識點小結習題第二部分 預備知識第3章 C語言、遞歸及存儲分配方式3.1 C語言的相關內容3.1.1 函數的參數傳遞與結果返回3.1.2 結構體類型3.1.3 指針3.2 遞歸3.3 存儲分配方式3.4 知識點小結習題第三部分 線性結構第4章 線性表4.1 線性表的類型定義4.1.1 線性表的邏輯結構4.1.2 線性表的基本運算4.2 線性表的順序存儲表示4.2.1 順序表4.2.2 順序表中基本運算的實現4.3 線性表的鏈式存儲表示4.3.1 單鏈表4.3.2 單鏈表中基本運算的實現4.4 線性表的其他鏈式存儲表示4.4.1 靜態單鏈表4.4.2 雙(向)鏈表4.4.3 循環單(向)鏈表4.4.4 循環雙(向)鏈表4.5 線性表的應用舉例4.6 順序表和鏈表的比較4.7 知識點小結習題第5章 棧5.1 棧的類型定義5.1.1 棧的邏輯結構5.1.2 棧的基本運算5.2 棧的順序存儲表示5.2.1 順序棧5.2.2 順序棧中基本運算的實現5.3 棧的鏈式存儲表示5.3.1 鏈棧5.3.2 鏈棧中基本運算的實現5.4 兩個方向生長的棧5.5 棧的應用舉例5.6 知識點小結習題第6章 隊列6.1 隊列的類型定義6.1.1 隊列的邏輯結構6.1.2 隊列的基本運算6.2 隊列的鏈式存儲表示6.2.1 鏈隊列6.2.2 鏈隊列中基本運算的實現6.3 隊列的順序存儲表示6.3.1 順序隊列6.3.2 循環隊列6.3.3 循環隊列中基本運算的實現6.4 雙端隊列6.5 隊列的應用舉例6.6 知識點小結習題第7章 串7.1 串的類型定義7.1.1 串的邏輯結構7.1.2 串的基本運算7.2 串的順序存儲表示7.3 串的堆分配存儲表示7.4 串的塊鏈存儲表示7.5 串的模式匹配7.6 知識點小結習題第8章 數組及廣義表8.1 數組的類型定義8.1.1 數組的定義8.1.2 數組的性質8.1.3 數組的基本運算8.2 數組的順序存儲表示8.3 特殊矩陣的壓縮存儲8.3.1 特殊形狀矩陣的壓縮存儲8.3.2 隨機稀疏矩陣的壓縮存儲及其運算8.4 廣義表8.4.1 廣義表的基本概念8.4.2 廣義表的基本運算8.4.3 廣義表的存儲結構8.5 知識點小結習題第四部分 非線性結構第9章 樹9.1 概述9.1.1 樹的定義及基本術語9.1.2 樹的存儲結構9.2 二叉樹9.2.1 二叉樹的定義9.2.2 二叉樹的性質9.2.3 二叉樹的存儲結構9.3 二叉樹的遍歷9.3.1 遍歷操作9.3.2 先序遍歷9.3.3 中序遍歷9.3.4 後序遍歷9.3.5 層次遍歷9.3.6 二叉樹遍歷的應用舉例9.4 線索二叉樹9.4.1 二叉樹的線索化9.4.2 線索二叉樹上的運算9.5 二叉樹的應用9.5.1 哈夫曼樹及其應用9.5.2 二叉排序樹9.5.3 平衡二叉樹9.6 樹、森林與二叉樹的相互轉換9.6.1 樹與二叉樹的相互轉換9.6.2 森林與二叉樹的相互轉換9.7 樹、森林的遍歷9.7.1 樹的遍歷9.7.2 森林的遍歷9.8 樹的應用舉例9.9 知識點小結習題第10章 圖10.1 概述10.1.1 圖的定義及基本術語10.1.2 圖的存儲結構10.1.3 圖的創建10.2 圖的遍歷10.2.1 深度優先搜索遍歷10.2.2 廣度優先搜索遍歷10.2.3 圖遍歷的應用舉例10.3 生成樹10.3.1 連通圖的生成樹10.3.2 連通網的最小生成樹10.4 最短路徑10.4.1 單源最短路徑10.4.2 每對頂點間的最短路徑10.5 有向無環圖及其應用10.5.1 AOV網與拓撲排序10.5.2 AOE網與關鍵路徑10.6 知識點小結習題第五部分 兩種重要運算第11章 查找11.1 查找的基本概念11.2 主要查找方法簡介11.3 靜態查找11.3.1 順序查找11.3.2 二分查找11.3.3 分塊查找11.4 動態查找11.5 散列查找11.5.1 散列表的概念11.5.2 散列函數的構造方法11.5.3 處理沖突的方法11.5.4 散列表的查找11.6 知識點小結習題第12章 內排序12.1 排序的基本概念12.2 插入排序12.2.1 直接插入排序12.2.2 希爾排序12.3 交換排序12.3.1 冒泡排序12.3.2 快速排序12.4 選擇排序12.4.1 直接選擇排序12.4.2 樹形選擇排序12.4.3 堆排序12.5 歸並排序12.6 分配排序12.6.1 箱排序12.6.2 基數排序12.7 各種內排序法的比較12.8 知識點小結習題第六部分 文件的組織結構及排序第13章 文件13.1 文件的基本概念13.2 順序文件13.3 索引文件13.4 索引順序文件13.5 散列文件13.6 多關鍵字文件13.7 知識點小結習題第14章 外排序14.1 多路平衡歸並14.2 置換選擇排序14.3 歸並樹及最佳歸並樹14.4 知識點小結習題參考文獻

章节摘录

插圖︰有用就會有需求,有了需求就會有動力,因此在開始本課程學習之前,我們必須弄清楚一個問題︰我們為什麼需要學習數據結構?計算機領域分兩個大的方向︰一個是硬件方向,另一個是軟件方向。硬件方向又包括兩個大的方面︰一個是硬件技術的發展,另一個是如何在現有硬件條件下設計出高性能的計算機系統。軟件是程序、數據以及文件的集合,它大致可分為系統軟件和應用軟件兩大類。系統軟件追求的是如何在方便用戶使用的前提下將計算機系統的性能發揮到極致;應用軟件則是直接面對終端用戶,它尋求的是更高的服務質量和更好的用戶服務體驗。我們將從應用軟件開發者的視角來探尋數據結構的重要性。實際問題往往很復雜,當我們求解實際問題的時候,往往是對實際問題的模型進行求解。所謂模型就是對實際問題的簡化,是反映問題本質的數據集合以及數據之間關系的集合。對模型的求解則是找到對給定的輸入數據的一系列處理步驟,使得能夠得到預期的輸出。為了讓計算機實現我們對模型的求解思路,則必須將模型映射到存儲器中,這樣計算機才能根據人的意圖對操作對象(即數據)進行處理。通過上面的分析可知,計算機的各種應用實際上都是對數據的處理,因此對數據以及它們之間的關系進行分析、表示是必不可少的。

编辑推荐

《數據結構及應用:C語言描述》系統地介紹了各種常用的數據結構以及排序、查找的各種算法,闡述了各種數據結構的邏輯關系、存儲表示及運算操作,基本涵蓋了研究生入學考試大綱的所有內容。基礎與應用並重。《數據結構及應用:C語言描述》不僅對什麼是數據結構,什麼是算法,它們之間有著怎樣的聯系,如何鑒定一個算法的好壞,數據結構有哪些常用的線性結構和非線性結構,它們各有什麼特點和應用,有哪些經典的查找和排序算法等問題進行清晰、全面的闡述,而且關注應用,利用眾多實例幫助讀者加深對基本知識的理解並靈活運用。圖文並茂,生動有趣。《數據結構及應用:C語言描述》為了幫助讀者直觀、正確地理解各種數據結構和算法的要旨,利用大量的圖表進行詮釋,以通俗易懂的方式介紹復雜的概念。積極引導,活躍思維。《數據結構及應用:C語言描述》在介紹完重要知識點後會設置一些思考題,引導讀者對數據結構的應用進行深入思考和理解,訓練讀者的發散性思維。讀者對象廣泛。《數據結構及應用:C語言描述》內容豐富、概念清楚、邏輯推理嚴謹、通俗易懂,既便于教學,又適合自學,可作為計算機及相關專業本科生的教材,也可作為計算機專業碩士研究生入學考試的復習用書,還可作為廣大工程技術人員的參考資料。

图书封面




    數據結構及應用下載



用户评论 (总计1条)

 
 

  •     內容較全面,比較簡單,推薦初學者用這本書,再去買其他的書深入學習。我們學校就是用這本書,因為這本書是我們學校老師寫的。書上錯誤很少,一本書大概就3,4個錯誤,只要你真的懂了,都可以找出來的。
 

計算機與互聯網 PDF免费下载,編程語言與程序設計PDF免费下载。 计算机教程网 

计算机教程网 @ 2017