內容介紹
《數據結構》可分為6個部分,分別為緒論、線性表、樹、圖、查找與排序、檔案。第1章概述數據結構可能涉及的內容和分析方法,講述了算法和程式的差異,算法的評價等問題。第2、3、4、5章講述線性表結構、特殊線性表——棧和佇列、字元串和數組與廣義表。從順序存儲結構和鍊表結構兩個方面來闡述線性表的存儲結構和建立在存儲結構之上的算法設計,以及線性表的廣泛套用,如棧、佇列、字元串、數組、廣義表等,並進一步討論了這些數據結構的套用,如程式調用、中斷、皇后問題、火車編組問題等。第6章討論樹。《數據結構》與其他教材不同的是,深入討論了一般樹的記數、層次、樹高等基本問題。在二叉樹的生成中講解了多種生成算法。在二叉樹的前序、中序和後序遍歷運算中討論了樹的遞歸和非遞歸算法遍歷算法,除此之外,還討論了歐拉遍歷和按層次遍歷,討論了線索二叉樹及其套用,二叉樹的典型套用——哈夫曼樹和哈夫曼編碼、排序樹、平衡樹、2—3樹、紅黑樹、表示樹、判定樹等問題。
第7章討論圖。內容包括圖、圖的遍歷、生成樹問題、最短路徑問題、拓撲排序和關鍵路徑等。
第8、9章討論目前常見的查找算法和排序算法。在查找算法中,從靜態表、動態表和哈希表三個方面來研究查找算法。靜態表的數據結構是線性表,動態表的查找主要有二叉樹查找、B樹查找和鍵樹查找等,哈希表的構造和查找則用哈希算法來實現。在排序中分為內排序和外排序兩個部分。內排序中主要討論了插入排序、交換排序、選擇排序、歸併排序、基數排序等8種經典的排序算法。外排序討論了磁碟排序、勝者樹和敗者樹、最佳歸併樹和磁帶排序等。
第10章討論了檔案。從檔案的存儲結構入手討論檔案的管理,有順序檔案、索引檔案、索引順序檔案、散列檔案、多關鍵字檔案等。
上述內容涵蓋了目前國內數據結構教材的幾乎所有內容,有的進行了深入的討論,有的比較初步,這與教材編寫的指導思想有關。
《數據結構》由王震江擔任主編,何英、吳紹兵任副主編。其中第1章、第2章(部分)、第3章、第4章、第6章由王震江編寫,第2章(部分)、第5章、第8章、第9章由吳紹兵編寫,第7章、第10章由何英編寫。王震江對全書進行了主審,統一了圖例。俞銳剛調試通過了全部算法,統編了全書的習題。邱莎審改了全文。