資料結構是計算機科學的一門重要課程,在學習C語言程式設計後,資料結構這門課程可以輕鬆擴大你的程式設計視野,幫助C程式設計者靈活運用陣列、串列、堆疊、佇列、二元樹和圖形等各種資料結構來解決程式問題,或使用搜尋和排序演算法來處理資料,讓程式執行的更有效率,此後,讀者不再只能撰寫只有幾行的小程式,而是擁有開發大型應用程式的能力。
一般來說,當讀者初次接觸資料結構時,總會認為資料結構是一門深奧學科,事實上,從讀者初次接觸程式設計,資料結構就如影隨形般,不知不覺的溶入讀者的程式設計經驗中,隨著程式設計經驗的累積而與日俱增。因為資料結構就是一些前輩留下的寶貴程式設計經驗,一些有效解決程式問題的資料儲存方法和演算法步驟,這些寶貴的經驗累積,就成為資料結構這門課程。
這本資料結構圖書是筆者留學歸國後撰寫的第1本電腦書,其最初版本是使用Turbo C撰寫,循序漸進詳細說明資料結構的基本觀念,並且輔以大量程式實例來加強解說(提供完整可執行程式,而非程式片段)。在改版中,筆者除了保留本書深入淺出解說的特點,程式碼部分全部改用Dev-C++重新編譯外,更引進全新互動模擬動畫學習工具,不只可以讓讀者檢視資料結構的動畫展示,更提供互動功能,可以讓讀者實際輸入資料來建立串列、堆疊、佇列和二元樹等資料結構,自行插入、刪除串列節點,或存入和取出堆疊和佇列資料等操作,讓讀者身歷其境了解各種資料結構的邏輯結構,和實際檢視演算法的執行過程。
本書內容規劃上,在前10章說明各種資料結構的理論與觀念,第2章是陣列,第3章是字串結構。第4章是動態記憶體配置的基本串列。第5、6章是堆疊與佇列,分別活用陣列和串列來實作堆疊和佇列。在第7章由基本串列出發介紹各種基本串列延伸的複雜串列。在第8章詳細說明遞迴程式設計,筆者使用大量圖例來解說遞迴的執行過程。第9和10章分別為樹狀結構的二元樹和圖形。
在第11到15章是使用在大量資料處理的搜尋和排序,並且說明程式計數
原理。
編著本書雖力求完美,但學識與經驗不足,謬誤難免,尚祈讀者不吝指正。