本書是為非計算機專業(yè)的學生學習“數據結構”課程而編寫的。本書的起點很低,適用的讀者面很廣。書中對每一種常用的數據結構都沒有從抽象的定義出發(fā),也沒有涉及到基本理論與計算機的專業(yè)知識。在介紹一種數據結構時,總是從實例出發(fā),通過對實例的分析、講解來介紹數據結構的基本概念,總結出每一種數據結構的特點及其應用。在本書中,使用一種最簡單的描述語言來描述對數據結構的運算,同時為了方便學過C語言的讀者,對每一個算法也都給出了C語言的描述。如果讀者沒有學過C語言,可以不看C語言的描述,也可以通過閱讀用C語言描述的算法順便學習C語言。本書強調實用性。書中所有的算法都用C語言編程調試通過。本書共分9章。第1章從兩個實例入手,介紹了數據結構的基本概念,討論了算法方面的考慮,并給出了本書主要使用的一種算法描述語言。第2章介紹了一般的線性表、棧、隊列等最基本的數據結構,并討論了這些在順序存儲結構下的主要運算,介紹了棧與隊列的主要應用;最后還討論了字符串匹配的問題。第3章介紹了線性表的鏈式存儲結構及其運算,并主要討論了線性鏈表在多項式運算中的應用。第4章介紹了數組的順序存儲結構、規(guī)則矩陣的壓縮以及稀疏矩陣的三列二維數組表示與十字鏈表表示。第5章介紹了樹與二叉樹的基本概念,主要討論了二叉樹的性質、二叉樹的存儲結構及其二叉樹的遍歷,最后還介紹了穿線二叉樹的概念、表達式線性化的過程、最優(yōu)二叉樹用于編碼等問題。第6章簡要介紹了圖的基本概念、圖的存儲方式、圖的兩種主要遍歷方法,最后討論了最短距離問題的求解。第7章介紹了工程中常用的查找方法,包括順序查找、對分查找、分塊查找、二叉排序樹查找以及多層索引樹查找等。第8章介紹了Hash表的基本概念,重點介紹了幾種常用的Hash表。第9章介紹了各種排序的方法,求解了拓撲分類的問題。本書通俗易懂、實例豐富,所有的算法均給出了C語言的描述,并且每章都附有一定數量的習題。本書可作為非計算機專業(yè)的學生學習數據結構的教材,也可作為自學教材或各類培訓班的教材。