為適應培養(yǎng)21世紀計算機各類人才的需要,結合我國高等學校教育工作現狀,立足更新教學內容和方法,編寫了本書。本書以基本數據結構和算法設計策略為知識單元,系統(tǒng)地介紹了數據結構的基本知識與實際應用,介紹了抽象數據類型和算法的基本概念以及計算機算法的設計方法與分析技巧。本書內容豐富,觀點新穎,注重理論聯(lián)系實際,可作為高等院校計算機學科與工程專業(yè)本科生、研究生的教材,也適合廣大工程技術人員和自學讀者學習參考。計算機的普及極大地改變了人們的生活.目前各行業(yè).各領域都與計算機建立了緊密的聯(lián)系, 并由此產生開發(fā)各種應用軟件的需求.為了以最少的成本.最快的速度.最好的質量開發(fā)出適合各種應用需求的軟件, 必須遵循軟件工程的原則, 設計出高效率的程序.一個高效的程序既需要“編程小技巧”, 更需要合理的數據組織和清晰高效的算法.這正是計算機科學領域里數據結構與算法設計所研究的主要內容.一些著名的計算機科學家在有關計算機科學教育的論述中認為, 計算機科學是一種創(chuàng)造性思維活動, 其教育必須面向設計.數據結構與算法設計正是一門面向設計, 且處于計算機學科核心地位的教育課程.通過對數據結構與算法設計的系統(tǒng)學習與研究, 理解和掌握算法設計的主要方法, 培養(yǎng)對算法的計算復雜性進行正確分析的能力, 為獨立地設計算法和對給定算法進行復雜性分析奠定堅實的理論基礎, 對從事計算機系統(tǒng)結構.系統(tǒng)軟件和應用軟件研究與開發(fā)的科技工作者是非常重要和必不可少的.為了適應培養(yǎng)我國對世紀計算機各類人才的需要, 結合我國高等學校教育工作的現狀, 立足培養(yǎng)學生能跟上國際計算機科學技術的發(fā)展水平, 更新教學內容和教學方法, 本書以基本數據結構和算法設計策略為知識單元系統(tǒng)地介紹數據結構知識與應用.計算機算法的設計方法與分析技巧.以期為計算機學科的學生提供一個廣泛堅實的數據結構與算法設計基礎知識. 全書共分10章.首先在第1章中介紹了數據結構.抽象數據類型和算法的基本概念, 接著對算法的計算復雜性和算法的描述做了簡要的闡述.然后以抽象數據類型為主線索, 圍繞設計算法常用的基本數據結構和基本設計策略, 組織了第2章~第10章的內容. 第2章~第5章依次介紹基于序列的抽象數據類型表.棧.隊列和串. 第6章介紹在實際應用中常用的排序與選擇算法. 第7章討論反映層次關系的抽象數據類型樹. 第8章介紹非線性結構圖及圖的算法. 第9章討論表示集會的抽象數據類型, 如字典.優(yōu)先隊列和并查集等. 最后, 在第10章系統(tǒng)地闡述算法設計的策略與技巧. 本書采用面向對象的C++語言為表述手段, 在保持C++優(yōu)點的同時, 盡量使數據結構與算法的描述簡明.清晰. 為了加深對知識的理解, 各章配有難易適當的習題, 以適應不同程度讀者練習的需要. 由于作者的知識和寫作水平有限, 書稿雖幾經修改, 仍難免有缺點和錯誤.熱忱歡迎同行專家和讀者批評指正, 使本書在使用中不斷改進.日臻完善. 在本書的編寫過程中, 得到全國高等學校計算機專業(yè)教學指導委員會的關心和支持,福州大學“211工程”計算機與信息工程重點學科實驗室為本書的寫作提供了優(yōu)良的設備與工作環(huán)境,電子工業(yè)出版社負責本書編輯出版工作的全體同仁工作認真細致, 一絲不茍, 為本書的出版付出了大量辛勤勞動,傅清祥教授在百忙之中認真審閱了全書, 提出了許多寶貴的改進意見.在此, 一并表示衷心的謝意! 作者2001年10月