本書是根據高職高專教育的特點、培養目標和教學要求而編寫。全書共分8章,依次介紹了數據結構的基本概念、線性表、鏈接表、數組和廣義表、樹、圖、查找和排序等。每章用大量的實例和圖表來說明基本概念和方法。每章后配有豐富的練習題并給出了習題的參考答案。教材采用c語言與類c相接合的方式作為算法的描述語言,算法也盡可能地少用抽象定義,而更多的是給出具體算法,并力求算法更接近于實際應用,使讀者能更快地提高編程能力。結合現代教育技術,教材配有多媒體課件以輔助教學,對抽象的數據結構輔之以形象的動畫,不僅能提高學生的學習興趣,也加深了對抽象概念的理解。
本書不僅適用于高職高專計算機類專業教學的需要,也可作為專業技術人員的參考用書。
前言
第1章 緒論
1.1 數據結構的基本概念和術語
1.2 算法描述和算法分析
習題
第2章 線性表
2.1 線性表的定義和順序存儲
2.2 線性表運算的實現
2.3 棧
2.4 隊列
2.5 字符串
習題
第3章 鏈接表
3.1 鏈表
3.2 鏈棧 前言
第1章 緒論
1.1 數據結構的基本概念和術語
1.2 算法描述和算法分析
習題
第2章 線性表
2.1 線性表的定義和順序存儲
2.2 線性表運算的實現
2.3 棧
2.4 隊列
2.5 字符串
習題
第3章 鏈接表
3.1 鏈表
3.2 鏈棧
3.3 鏈隊列
3.4 字符串的鏈式存儲
3.5 鏈表應用舉例
習題
第4章 數組和廣義表
4.1 數組
4.2 廣義表
習題
第5章 樹
5.1 樹的基本概念
5.2 二叉樹
5.3 樹、森林的遍歷與二叉樹的轉換
5.4 哈夫曼樹
習題
第6章 圖
6.1 圖的基本概念
6.2 圖的存儲結構
6.3 圖的遍歷
6.4 最小生成樹
6.5 最短路徑
6.6 有向無環圖及其應用
習題
第7章 查找
7.1 查找的基本概念
7.2 靜態查找表
7.3 動態查找表
7.4 哈希表
習題
第8章 排序
8.1 排序的基本概念
8.2 插入排序
8.3 交換排序
8.4 選擇排序
8.5 二路歸并排序
8.6 各種內部排序方法的比較
習題
附錄
附錄A 函數索引
附錄8 習題參考答案及解答
參考文獻
第1章 緒論
自從世界上的第一臺電子計算機于1946年在美國面世以來,計算機的軟硬件技術得到了飛速的發展。計算機的應用領域從最初的科學計算已發展到人類活動的各個領域。數據是計算機可以直接處理的最基本和最重要的對象。科學計算、數據處理、過程控制以及對文件的存儲和檢索及數據庫技術等,都是對數據進行加工處理的過程。因此,必須研究數據的特性及數據間的相互關系及其對應的存儲表示方法,并利用這些特性和關系設計出一個結構性好、效率高的算法和程序。數據結構這門學科就是在計算機的發展過程中應運而生的,它是計算機學科的核心課程,在計算機系統軟件和應用軟件中都要用到各種類型的數據結構。學好數據結構這門課程對于學習計算機專業的其他課程,如操作系統、編譯原理(編譯技術)、數據庫管理系統、軟件工程、人工智能等都是十分有益的。隨著計算機的發展人們對數據結構越來越重視,認為程序設計的實質就是對要處理的問題選擇一種好的數據結構,并在此結構上施加一種好的算法。著名的計算機科學家N.Wiah寫的《算法+數據結構=程
序》一書正是體現了這種觀點。對數據結構這一學科的主要研究范圍包括:數據的邏輯結構和物理結構,并在這種結構上定義相關的操作運算,設計并實現相應的算法,分析算法的效率,以達到提高程序質量的目的。其中,邏輯結構是指數據元素之間的關聯方式;物理結構又稱存儲結構,是指在計算機中如何具體存儲數據的各種邏輯結構。同一種邏輯結構可以有幾種不同的物理結構來實現。因此,從某種意義上講研究物理結構更為重要。
1.1 數據結構的基本概念和術語
1.數據(Data) 數據是指能輸入到計算機中并能被計算機處理的一切對象。在這里的所謂數據必須作廣義的理解,它是指能夠被計算機識別、存儲和加工處理的一切信息。它可以是數值數據,也可以是非數值數據。數值數據是一些整數、實數等;非數值數據包括字符、文字、圖形、圖像、語音等。因此,大到一本書、一篇文章、一張圖表、一幅照片、一首歌曲等,小到一條語句、一個單詞、一個算式、一個數值、一個字符等都是數據。今后隨著計算機的發展,數據的范圍還將不斷擴大。
2.數據元素(Data Element)數據元素是一個數據整體中相對獨立的基本單位。由于數據的范圍非常廣泛,因此基本單位也是可大可小的。大到一本書、一張圖表、一幅照片、一首歌曲等,小到一個數值、一個字符等都是數據元素。對于較大的單位,一個數據元素可由若干個數據
項(Data Item)組成,例如,一本書的目錄卡片就可以包括書名、作者、出版社、出版日期等數據項。
3.數據對象(Data Object) 數據對象是具有相同性質的數據元素的集合,是數據的一個子集。在某個具體問題中,數據元素都具有相同的性質,屬于同一數據對象,例如:整數集、實數集、字符集等,不論是有限集合還是無限集合,都是數據的一個子集。
4.數據結構(Data Structure) 數據結構是指相互之間存在著一種或多種特定關系的數據元素的集合。在任何問題中,數據元素之間都不會是孤立的,在它們之間都存在著這樣或那樣的關系,這種數據元素之間的關系稱為結構。
……