數據結構是計算機學科本科教學計劃的核心課程,對學生基本的計算機問題求解能力的培養具有重要意義。
作為一門必修課程,數據結構既是對以往課程的深入和拓展,也是為將來更加深入地學習其他專業課程打下基礎。課程中所學習的線性表、棧、隊列、二叉樹等數據結構以及排序和查找算法是操作繫統、編譯原理、數據庫、計算機網絡等後續課程的基礎。
數據結構適合在大學二年級開設,學生應該先修計算機導論、Java程序設計和離散數學。
本書主要內容
參考高等學校計算機科學與技術教學指導委員會編制的高等學校計算機科學與技術專業核心課程教學實施方案中的建議,全書分為三篇,共有10章。
基礎篇包括第1~3章。第1章為Java語言回顧,內容包括類、接口、異常處理和常用的異常類、泛型、數組和引用類型的轉型。第2章為算法與算法分析,內容包括算法、算法分析和程序性能測量。第3章為數據結構,內容包括數據結構的基本概念、數據結構的描述、抽像數據類型及實現。
數據結構篇包括第4~6章。第4章為線性表,內容包括線性表的基本概念、線性表的數組描述、線性表的鏈式描述、數組描述和鏈式描述的比較。第5章為棧與隊列,內容包括棧、隊列、雙端隊列。第6章為樹與二叉樹,內容包括樹、二叉樹、二叉樹的性質、二叉樹的實現、二叉樹的常用操作、樹的遍歷和樹的描述。
綜合運用篇包括第7~10章。第7章為查找,內容包括基本概念、靜態查找、動態查找、二叉搜索樹、AVL樹、紅黑樹、B樹、哈希表。第8章為優先級隊列,內容包括基本概念、堆、優先級隊列的實現、最優二叉樹、偶堆。第9章為排序,內容包括基本概念、直接插入排序、快速排序、堆排序、歸並排序、基數排序、計數排序。第10章為圖,內容包括圖的基本概念、圖的描述、圖的實現、圖的搜索與應用、最短路徑、最小生成樹、圖的其他描述。
本書特色
(1) 注重理論,突出重點。
本書詳細介紹了線性表和二叉樹等內容,通過大量的圖示、例題和代碼講解,突出了鏈式描述和遞歸的教學,同時在內容方面兼顧知識的繫統性。
(2) 強調實現,聯繫實際。
本書強調數據結構的實現,借鋻了Java類庫的代碼風格,有助於讀者養成良好的編程習慣。本書將線性表、棧、隊列和二叉樹的應用融合到查找、排序、圖等具體問題中,為重要的知識點配備了豐富的習題和代碼。
(3) 風格簡潔,使用方便。
本書風格簡潔,對一些概念進行了梳理,對於非重點的內容不做過多論述,以便讀者在學習過程中明確內容之間的邏輯關繫,更好地掌握數據結構的內容。
配套資源
為便於教與學,本書配有源代碼、教學課件、教學大綱、教學進度表、習題題庫和實驗指導書。
(1) 獲取源代碼的方式: 先刮開並用手機版微信App掃描本書封底的文泉雲盤防盜碼,授權後再掃描下方的二維碼,即可獲取。
源代碼
(2) 其他配套資源可以掃描本書封底的“書圈”二維碼,關注後回復本書書號,即可下載。
讀者對像
本書主要面向廣大從事信息技術的專業人員、從事高等教育的專任教師、高等學校的在讀學生及相關領域的廣大科研人員。
在本書的編寫過程中,作者參考了諸多相關資料,在此對相關資料的作者表示衷心的感謝。
限於作者水平和時間倉促,書中難免存在疏漏之處,歡迎廣大讀者批評指正。
作者
2023年4月