本書核心內(nèi)容為順序存儲與鏈?zhǔn)酱鎯,?qiáng)調(diào)函數(shù)的重要性,包括示例的函數(shù)給出、棧在遞歸函數(shù)的應(yīng)用等。本書包括基礎(chǔ)理論(1-2章),基礎(chǔ)應(yīng)用(3-7章),常規(guī)應(yīng)用(第8-9章),經(jīng)典算法分析(10章)4部分,實(shí)現(xiàn)了從理論到實(shí)踐的過渡,適合應(yīng)用型本科學(xué)生作為教材使用,緊扣學(xué)時(shí)安排教學(xué)內(nèi)容。本書適合計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、信息管理與信息系統(tǒng)等專業(yè)應(yīng)用型本科學(xué)生學(xué)習(xí)使用。
將本門課程多年的教學(xué)經(jīng)驗(yàn)總結(jié)歸納成書,是編者的初衷。
作為計(jì)算機(jī)類相關(guān)專業(yè)學(xué)生的專業(yè)基礎(chǔ)課程,算法與數(shù)據(jù)結(jié)構(gòu)具有較長遠(yuǎn)的開設(shè)歷史,同類教材也非常多,本書知識體系及內(nèi)容撰寫具有以下一些特色。
(1)知識結(jié)構(gòu)符合當(dāng)前對該課程的主流認(rèn)知。
(2)針對當(dāng)前大學(xué)生編程普及,但對計(jì)算機(jī)工作原理卻比較薄弱這一特點(diǎn),內(nèi)容編寫中強(qiáng)調(diào)了順序存儲與鏈?zhǔn)酱鎯,以加?qiáng)同學(xué)們對內(nèi)存管理及計(jì)算機(jī)工作原理的了解。
(3)強(qiáng)調(diào)函數(shù)的重要性,包括示例的函數(shù)的講解、棧在遞歸函數(shù)的應(yīng)用等,以加強(qiáng)模塊化設(shè)計(jì)的理念。
(4)重視整本書的內(nèi)在邏輯性,從文字組織及示例設(shè)置上,隱性地分為四個(gè)部分:基礎(chǔ)理論(第1~2章),基礎(chǔ)應(yīng)用(第3~7章),常規(guī)應(yīng)用(第8~9章),經(jīng)典算法分析(第10章)。既體現(xiàn)教材由理論到實(shí)踐的遞進(jìn),也保證72(56 16)課時(shí)左右的緊湊完整。
作為應(yīng)用型本科專業(yè)基礎(chǔ)教材,創(chuàng)新并不是一個(gè)主要的追求目標(biāo)。本書基于多年教學(xué)經(jīng)驗(yàn),在匯集出本課程的一些重點(diǎn)和難點(diǎn)基礎(chǔ)上,針對不同內(nèi)容設(shè)計(jì)解析過程,除了文字描述外,還包括圖示分析、示例演算、表格總結(jié)等,力求將問題講清講透。其中,KMP算法,二叉樹線索下的前驅(qū)后繼的查找,圖的遍歷,圖的最短路徑、關(guān)鍵路徑等內(nèi)容的講解,都不同于一般教材直接給出對應(yīng)的公式或解決方案,而是從思維的習(xí)慣性出發(fā),采用樸實(shí)的舉例或說理,希望更加有助于同學(xué)們的理解。諸如此類的嘗試,雖然在教學(xué)中實(shí)踐多次,但作為一本正式出版教材中的內(nèi)容,我們依然謹(jǐn)慎處理,首先由編寫老師共同分析,再請學(xué)生參照其他教材閱讀比較,給出心得體會和改進(jìn)意見。對每一章結(jié)尾的小結(jié),給出具有啟發(fā)意義的觀點(diǎn),即使未經(jīng)證實(shí)但在沒有證偽的情況下,也呈現(xiàn)給廣大師生,以提高其深究、探索的興趣。
全書采用C語言實(shí)現(xiàn)函數(shù),方便一般高校培養(yǎng)計(jì)劃的順利實(shí)施,同時(shí),因?yàn)镃語言對底層的操作能力要求及非封裝特性,可以更為全面地刻畫出數(shù)據(jù)結(jié)構(gòu)與算法的一些關(guān)鍵問題,以幫助學(xué)生對計(jì)算機(jī)編程有更深刻的理解。
由于我們一直采用由唐善策等主編的《算法與數(shù)據(jù)結(jié)構(gòu)用C語言描述》,所以在本次編寫過程中,參照了該教材部分內(nèi)容,在此特別申明并表示感謝。其他參考文獻(xiàn),已列于書后,在此對相關(guān)作者一并表示感謝。
本書的1~9章內(nèi)容作為本課程的傳統(tǒng)知識體系應(yīng)該課內(nèi)講授,其中一些較難的章節(jié),例如,約瑟夫問題、迷宮問題等,可以考慮選講。最后1章,可以僅選擇一兩個(gè)算法進(jìn)行講解。
本書由金陵科技學(xué)院李廣水、錢海忠兩位老師任主編,廣東省科學(xué)技術(shù)情報(bào)研究所何靜從應(yīng)用實(shí)踐方面、昆士蘭科技大學(xué)Fuguo Wei從軟件工程國際合作培養(yǎng)角度提出編寫意見,對教材的整體結(jié)構(gòu)及內(nèi)容組織給予了極大的幫助,任本書副主編,李廣水進(jìn)行全書統(tǒng)稿工作。
真心感謝電子工業(yè)出版社李靜編輯的悉心審稿,她認(rèn)真的工作態(tài)度、執(zhí)著的精神,真實(shí)地感動了我們,也提高了我們對本書質(zhì)量保證方面的信心。
即便如此,由于知識及能力的有限,疏漏及不足之處依然難免,懇請廣大讀者朋友給出批評建議,在此表示衷心感謝!
作者郵箱:yz_lgs@126.com
編 者
2017年6月
李廣水,南京林業(yè)大學(xué)森林經(jīng)理博士,教授,金陵科技學(xué)院軟件工程學(xué)院教師,多次獲得江蘇省高等教育學(xué)會、教育科學(xué)研究院、校級教學(xué)成果獎(jiǎng),在軟件工程專業(yè)從事十幾年的教學(xué)工作,教學(xué)嚴(yán)謹(jǐn),科研認(rèn)真,主持江蘇省多項(xiàng)科研教學(xué)項(xiàng)目。