數據結構實用教程

數據結構實用教程

《數據結構實用教程(C語言版)》是為“數據結構”課程編寫的教材。書中首先介紹了數據結構的概念及數據結構研究的邏輯結構、存儲結構及運算三方面內容涉及的基本概念;然後針對經典的數據結構(即線性表、棧、佇列、多維數組、廣義表、樹和圖)的邏輯特徵、常用的存儲方式及各種基本運算的實現算法作了詳細闡述;最後討論了兩種典型運算——排序和查找的各種實現方法。全書採用C語言作為數據結構和算法的描述工具。在一些重點部分,還給出了簡單套用舉例的完整c程式。

基本信息

圖書信息

書 名: 數據結構實用教程
作 者:霍利 董靚瑜 趙波
出版社清華大學出版社
出版時間: 2009年09月
ISBN: 9787302206590
開本: 16開
定價: 27.00 元

內容簡介

《數據結構實用教程(C語言版)》是為“數據結構”課程編寫的教材。書中首先介紹了數據結構的概念及數據結構研究的邏輯結構、存儲結構及運算三方面內容涉及的基本概念;然後針對經典的數據結構(即線性表、棧、佇列、多維數組、廣義表、樹和圖)的邏輯特徵、常用的存儲方式及各種基本運算的實現算法作了詳細闡述;最後討論了兩種典型運算——排序和查找的各種實現方法。全書採用C語言作為數據結構和算法的描述工具。在一些重點部分,還給出了簡單套用舉例的完整c程式。《數據結構實用教程(C語言版)》結構清晰,層次分明,深入淺出,通俗易懂,適用面廣。可以作為普通高等院校計算機學科和信息類學科本科或專科教材,也可以作為其他理工類專業的選修教材。

圖書目錄

第1章 緒論
1.1 基本術語
1.2 數據結構的定義及研究的內容
1.2.1 數據的邏輯結構
1.2.2 數據的存儲結構
1.2.3 數據的運算
1.3 算法
1.3.1 算法的概念及特性
1.3.2 算法的描述
1.3.3 算法的評價
1.4 學習數據結構的意義和目的
習題
第2章 線性表
2.1 線性表的定義及運算
2.1.1 線性表的定義及邏輯特徵
2.1.2 線性表上運算的定義
2.1.3 線性表的存儲結構
2.2 順序表
2.2.1 順序表的定義及表示
2.2.2 線性表運算在順序表上的實現
2.2.3 順序表套用舉例
2.3 鍊表
2.3.1 鍊表的定義及形式
2.3.2 單鍊表
2.3.3 循環鍊表
2.3.4 雙鍊表
2.3.5 靜態鍊表
2.3.6 單鍊表的套用舉例
2.4 順序表和鍊表的比較
習題
第3章 棧和佇列
3.1 棧
3.1.1 棧的定義及運算
3.1.2 順序棧及運算的實現
3.1.3 鏈棧及運算的實現
3.1.4 棧的套用
3.1.5 棧與遞歸
3.2 佇列
3.2.1 佇列的定義及運算
3.2.2 順序佇列及運算的實現
3.2.3 鏈佇列及運算的實現
3.3 棧與佇列的比較
習題
第4章 多維數組及廣義表
4.1 多維數組
4.2 矩陣的壓縮存儲
4.2.1 特殊矩陣
4.2.2 稀疏矩陣
4.3 廣義表
4.3.1 廣義表的定義
4.3.2 廣義表的運算
習題
第5章 樹
5.1 樹的定義
5.2 二叉樹
5.2.1 二叉樹的定義及性質
5.2.2 二叉樹的存儲
5.2.3 二叉樹的遍歷及實現算法
5.3 線索二叉樹
5.3.1 中序線索二叉樹的定義
5.3.2 中序線索二叉樹上遍歷的實現
5.3.3 利用中序線索實現前序遍歷後序遍歷
5.4 樹和森林
5.4.1 樹和森林的遍歷
5.4.2 森林與二叉樹的轉換
5.4.3 樹的存儲
5.5 哈夫曼樹
5.5.1 哈夫曼樹的定義及建立
5.5.2 哈夫曼編碼及解碼
5.5.3 哈夫曼樹套用舉例
5.6 樹與等價類問題
習題
第6章 圖
6.1 圖的概念
6.2 圖的存儲
6.2.1 鄰接矩陣
6.2.2 鄰接表
6.2.3 邊集數組
6.3 圖的遍歷
6.3.1 深度優先搜尋遍歷
6.3.2 廣度優先搜尋遍歷
6.3.3 非連通圖的遍歷
6.4 最小生成樹
6.4.1 普里姆算法
6.4.2 克魯斯卡爾算法
6.5 最短路徑
6.5.1 單源最短路徑
6.5.2 任意兩點間最短路徑
6.6 拓撲排序
6.7 關鍵路徑
習題
第7章 排序
7.1 排序的基本概念
7.2 插入排序
7.2.1 直接插入排序
7.2.2 希爾排序
7.3 交換排序
7.3.1 起泡排序
7.3.2 快速排序
7.4 選擇排序
7.4.1 直接選擇排序
7.4.2 堆排序
7.5 歸併排序
7.6 基數排序
7.7 內排序方法的比較
習題
第8章 查找
8.1 查找的基本概念
8.2 順序表查找
8.2.1 順序查找
8.2.2 二分查找
8.3 索引查找
8.3.1 索引表的組織
8.3.2 分塊查找
8.4 樹表查找
8.4.1 二叉排序樹
8.4.2 平衡二叉排序樹
8.4.3 B一樹
8.5 散列表查找
8.5.1 散列表的概念
8.5.2 散列函式的設計
8.5.3 解決衝突的方法
8.5.4 散列表的套用舉例
習題
參考文獻
……

圖書序言

“數據結構”是計算機及相關專業的專業基礎課和核心課。隨著計算機套用範圍逐漸深入到各個學科領域,在培養適應社會需求的多學科、複合型、套用型人才的過程中,本課程已經成為其他很多專業的熱門選修課程。“數據結構”所研究的知識內容和技術方法,不論對學習計算機學科的其他相關課程,還是對從事軟體設計和開發工作,都是重要的理論基礎。
本書主要討論數據處理問題中各種經典的邏輯結構及特點;數據在計算機中的存儲結構及常用的存儲方法;定義在邏輯結構上、實現在存儲結構上的各種典型運算的算法。通過本書的學習,能夠熟練掌握三大經典結構(線性表、樹、圖)的邏輯特徵,能夠採用常用的存儲方法設計出合理的存儲結構,並對典型運算設計多種實現算法。在深入理解和掌握本書內容的基礎上,訓練複雜程式設計的能力,並學會運用基本理論和基礎知識解決實際問題。
教材中共包含8章內容:第l章緒論中主要介紹數據結構的概念及數據結構研究的三方面內容涉及的基本概念;第2章和第3章介紹了三種最基本的線性結構,即線性表、棧和佇列;第4章至第6章敘述非線性結構,分別是多維數組、廣義表、樹和圖;第7章和第8章討論數據處理過程中使用頻率最高的兩種典型運算一一排序和查找。鑒於目前“C語言程式設計”已經普遍地成為數據結構的先修課,全書採用C語言作為數據結構和算法的描述工具。利用數組、結構體、指針等重要數據類型結合C函式,完成書中所有基本運算的實現算法。在一些重點部分,書中還給出了簡單套用舉例的完整C程式,旨在掌握如何利用數據結構中基本運算來解決實際問題。書中所有的算法都經過上機調試通過。
本書在內容選取上符合複合型、套用型人才培養目標的要求,遵循教學規律和認知規律。組織編排上體現先理論、後套用、理論與套用相結合的原則,注重課程內容的前後聯繫,理清來龍去脈,強調條理性和系統性,兼顧學科的廣度和深度。本書結構清晰,層次分明,深入淺出,通俗易懂,適用面廣。可以作為普通高等院校計算機學科和信息類學科本科和專科教材,也可以作為其他理工類專業的選修教材,講授學時可以為64~80學時。教師可以根據本校的教學大綱及學時安排,選講部分內容。
本書的主編一直從事數據結構的教學和研究工作,參加編著過多本教材。本書是作者多年教學經驗的結晶,在難點內容的敘述及講解方法上有獨到之處。主編完成全書的整體策劃,並承擔統稿工作,也參與了部分章節的編寫。其他作者分工如下:第1章、第2章、第3章由鄭巍編寫;第4章、第5章由董靚瑜編寫;第6章由李靜編寫;第7章、第8章由霍利編寫。編寫過程中參考了大量的著作、教材等資料,在此一併表示感謝。
雖然全體參編人員都盡心盡力、力求完美,但由於時間倉促、水平有限,書中難免出現遺漏或不妥之處,敬請廣大讀者不吝指正,不勝感激。

圖書文摘

1.2.2數據的存儲結構
數據的存儲結構(Storage Structure),是指數據的邏輯結構到計算機存儲器的映射。對於數據的邏輯結構Data Struture=(D,s),在映射中,一方面要將數據集D中的數據元素存放到存儲器中,另一方面還要體現關係集S,常見的體現關係s的方式有顯示和隱含兩種。
計算機存儲空間是以位元組為單位進行編址的,地址是從零開始的、連續的正整數。對計算機存儲器存取操作的基本單位是位元組(byte),每個位元組都有唯一的地址標識。用戶使用存儲器通常是以存儲單元為單位,每個存儲單元由若干個連續的位元組構成,一個單元可以存儲一個數據元素,單元的大小取決於數據元素的類型。每個存儲單元都有唯一的地址標識(即若干個連續位元組的首地址),用戶可以通過每個存儲單元的地址實現對存儲單元中數據元素的訪問。數據可以存儲在連續的存儲單元中也可以存儲在不連續的存儲單元中。若干地址連續的存儲單元稱為一個存儲區域,也可以說存儲區域是存儲單元的線性序列。
完成數據的邏輯結構到存儲區域的映射可以有很多的方法,最常用的實現數據存儲結構的方法有如下4種。

相關詞條

相關搜尋

熱門詞條

聯絡我們