官术网_书友最值得收藏!

第2版前言

數(shù)據(jù)結(jié)構(gòu)是軟件設(shè)計(jì)的重要理論和實(shí)踐基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì)是軟件系統(tǒng)設(shè)計(jì)的核心。“數(shù)據(jù)結(jié)構(gòu)”課程討論的知識(shí)內(nèi)容是軟件設(shè)計(jì)的理論基礎(chǔ),“數(shù)據(jù)結(jié)構(gòu)”課程介紹的技術(shù)方法是軟件設(shè)計(jì)中使用的基本方法。“數(shù)據(jù)結(jié)構(gòu)”是理論與實(shí)踐并重的課程,要求學(xué)生既要掌握數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)理論知識(shí),又要掌握運(yùn)行和調(diào)試程序的基本技能。因此,“數(shù)據(jù)結(jié)構(gòu)”課程在計(jì)算機(jī)類各專業(yè)本科學(xué)生的培養(yǎng)過(guò)程中有著十分重要的地位,是計(jì)算機(jī)類專業(yè)的一門核心課程,是培養(yǎng)程序設(shè)計(jì)能力的必不可少的重要環(huán)節(jié)。

“數(shù)據(jù)結(jié)構(gòu)”課程內(nèi)容多,概念抽象,理論深?yuàn)W,遞歸算法難度較大,一直是計(jì)算機(jī)專業(yè)最難學(xué)的課程之一。本書精選基礎(chǔ)理論內(nèi)容,重點(diǎn)是數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì),通過(guò)降低理論難度和抽象性、加強(qiáng)實(shí)踐環(huán)節(jié)等措施,進(jìn)一步增強(qiáng)學(xué)生的理解能力和應(yīng)用能力,力求取得較好的教學(xué)效果。

本書的特色說(shuō)明如下。

(1)內(nèi)容全面、注重基礎(chǔ)

本書全面、系統(tǒng)地介紹數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)理論和算法設(shè)計(jì)方法,闡明線性表、樹、圖等數(shù)據(jù)模型的邏輯結(jié)構(gòu),討論它們?cè)谟?jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu),討論每種數(shù)據(jù)結(jié)構(gòu)所能進(jìn)行的多種操作,以及這些操作的算法設(shè)計(jì)與實(shí)現(xiàn);針對(duì)軟件設(shè)計(jì)中應(yīng)用頻繁的查找和排序問(wèn)題,根據(jù)不同數(shù)據(jù)結(jié)構(gòu)對(duì)操作的實(shí)際需求,給出多種查找和排序算法,并分析算法的執(zhí)行效率。

本書內(nèi)容選擇適合工科院校,理論敘述精練,簡(jiǎn)明扼要,結(jié)構(gòu)安排合理,由淺入深,層次分明,重點(diǎn)突出,算法分析透徹,程序結(jié)構(gòu)嚴(yán)謹(jǐn)規(guī)范。內(nèi)容涉及的廣度和深度符合本科培養(yǎng)目標(biāo)的要求。

(2)采用C++語(yǔ)言和面向?qū)ο蟪绦蛟O(shè)計(jì)思想描述數(shù)據(jù)結(jié)構(gòu)和算法

數(shù)據(jù)結(jié)構(gòu)和算法的設(shè)計(jì)不依賴于程序設(shè)計(jì)語(yǔ)言,但數(shù)據(jù)結(jié)構(gòu)和算法的實(shí)現(xiàn)依賴于程序設(shè)計(jì)語(yǔ)言。描述數(shù)據(jù)結(jié)構(gòu)所采用的軟件方法和算法語(yǔ)言,需要隨著軟件方法及算法語(yǔ)言的不斷發(fā)展而發(fā)展。面向?qū)ο蟪绦蛟O(shè)計(jì)方法是軟件分析、設(shè)計(jì)和實(shí)現(xiàn)的新方法,是目前軟件開(kāi)發(fā)的主流方法。

C++語(yǔ)言是目前功能最強(qiáng)、應(yīng)用廣泛的支持面向?qū)ο蟪绦蛟O(shè)計(jì)的代表語(yǔ)言。C++語(yǔ)言具備表達(dá)數(shù)據(jù)結(jié)構(gòu)和算法的基本要素。因此,采用C++語(yǔ)言描述數(shù)據(jù)結(jié)構(gòu)和算法不僅可行,也是“數(shù)據(jù)結(jié)構(gòu)”課程內(nèi)容教學(xué)改革的必然,完全符合本科培養(yǎng)目標(biāo)的要求。本書采用C++語(yǔ)言描述數(shù)據(jù)結(jié)構(gòu)和算法,算法以函數(shù)方式呈現(xiàn),函數(shù)有明確的輸入?yún)?shù)和返回值,以面向?qū)ο蟪绦蛟O(shè)計(jì)思想貫穿始終,使“數(shù)據(jù)結(jié)構(gòu)”課程真正成為有效培養(yǎng)程序設(shè)計(jì)能力的訓(xùn)練課程,并與程序設(shè)計(jì)語(yǔ)言課程更好地銜接。

本書只是借用C++語(yǔ)言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語(yǔ)言,重點(diǎn)仍是數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)本身,而不是表現(xiàn)C++語(yǔ)言的復(fù)雜技術(shù)。因此,使用C++語(yǔ)言的基本原則是,盡可能使用C++語(yǔ)言的最基本成分(如數(shù)據(jù)類型、數(shù)組、函數(shù)、指針、類等)描述數(shù)據(jù)結(jié)構(gòu)和表達(dá)算法設(shè)計(jì)思想,展現(xiàn)原始設(shè)計(jì)能力,使程序簡(jiǎn)潔、明了,算法思路清楚、明白,淡化或回避C++語(yǔ)言的友元類、運(yùn)算符重載、多重繼承等技術(shù)。

當(dāng)一個(gè)問(wèn)題有多種解決辦法時(shí),盡可能采用簡(jiǎn)單、直接并且不造成歧義的辦法。例如,對(duì)數(shù)組元素進(jìn)行操作,盡量采用下標(biāo)形式,避免使用指針形式;函數(shù)的返回結(jié)果盡量采用返回值形式,避免使用指針的指針;構(gòu)造函數(shù)盡量采用重載方式,避免采用默認(rèn)值而造成的歧義等。

(3)增強(qiáng)實(shí)際應(yīng)用

數(shù)據(jù)結(jié)構(gòu)是一門理論和實(shí)踐緊密結(jié)合的課程,因此需要在透徹理解理論知識(shí)的基礎(chǔ)上,通過(guò)實(shí)踐性環(huán)節(jié),逐步鍛煉學(xué)生的程序設(shè)計(jì)能力。

注重傳授基礎(chǔ)理論知識(shí),注重在實(shí)踐環(huán)節(jié)中培養(yǎng)程序設(shè)計(jì)的基本技能,是本書第1版的重要特色,也是本書的重要特色。本書精心選擇并設(shè)計(jì)一系列與實(shí)際應(yīng)用息息相關(guān)的例題、習(xí)題、實(shí)驗(yàn)題、課程設(shè)計(jì)題等,使原本枯澀難懂的理論變得生動(dòng)有趣,并以此說(shuō)明數(shù)據(jù)結(jié)構(gòu)和算法的必要性,以及它們對(duì)實(shí)際應(yīng)用程序設(shè)計(jì)的指導(dǎo)作用。同時(shí),要求學(xué)生能在生活中發(fā)現(xiàn)問(wèn)題并解決問(wèn)題,提高學(xué)習(xí)興趣,力求在潛移默化中使學(xué)生理解和體會(huì)理論知識(shí)的重要性,并掌握如何使用它們的方法。

除了每章的實(shí)驗(yàn)題給出詳細(xì)的訓(xùn)練目標(biāo)、設(shè)計(jì)內(nèi)容和設(shè)計(jì)要求之外,針對(duì)課程設(shè)計(jì)實(shí)踐性環(huán)節(jié),本書給出了多種算法設(shè)計(jì)與分析的綜合應(yīng)用程序設(shè)計(jì)實(shí)例,詳細(xì)說(shuō)明需求方案、設(shè)計(jì)思想、模塊劃分、功能實(shí)現(xiàn)、調(diào)試運(yùn)行等環(huán)節(jié)的設(shè)計(jì)方法,貫徹理論講授與案例教學(xué)相結(jié)合的教學(xué)方法。

程序設(shè)計(jì)有其自身的規(guī)律,不是一蹴而就的,也沒(méi)有捷徑。程序員必須具備基本素質(zhì),必須掌握程序設(shè)計(jì)語(yǔ)言的基本語(yǔ)法以及算法設(shè)計(jì)思想和方法,并且需要積累許多經(jīng)驗(yàn)。這個(gè)逐步積累的過(guò)程需要一段時(shí)間,需要耐心,厚積而薄發(fā)。

本書第1~9章是數(shù)據(jù)結(jié)構(gòu)課程的主要內(nèi)容,包括線性表、樹、圖等數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)以及查找和排序算法設(shè)計(jì);第10章為綜合應(yīng)用設(shè)計(jì),包括課程設(shè)計(jì)范例和參考選題;第11章介紹如何使用Visual C++ 6.0集成開(kāi)發(fā)環(huán)境,重點(diǎn)和難點(diǎn)是程序調(diào)試技術(shù)。第11章雖然放在最后,卻是貫穿始終的,配合各章逐步進(jìn)行。熟悉集成開(kāi)發(fā)環(huán)境、掌握程序調(diào)試技術(shù)也需要經(jīng)過(guò)一個(gè)逐步積累的過(guò)程。

本書所有程序均已在Visual C++ 6.0開(kāi)發(fā)環(huán)境中調(diào)試通過(guò)。

本書由葉核亞編著,在寫作過(guò)程中作者得到了許多幫助和支持,感謝南京大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系陳本林教授認(rèn)真、細(xì)致地審閱了全稿,提出了許多寶貴意見(jiàn);感謝陳立、廖雷、闞建飛、陳建紅、陳瑞、王青云、李林廣、刁翔、沈晨鳴、王少東等老師給予的幫助;感謝電子工業(yè)出版社的支持;感謝眾多讀者朋友對(duì)本書第1版提出的寶貴意見(jiàn)。

對(duì)書中存在的不妥與錯(cuò)漏之處,敬請(qǐng)讀者朋友批評(píng)指正。

本書為任課教師提供配套的教學(xué)資源(包含電子課件和例題源代碼、習(xí)題解答),需要者可登錄到華信教育資源網(wǎng)站(http://www.huaxin.edu.cn或http://www.hxedu.com.cn),注冊(cè)之后進(jìn)行下載,或發(fā)郵件到unicode@phei.com.cn咨詢

作者

主站蜘蛛池模板: 饶河县| 海口市| 唐山市| 鄂伦春自治旗| 林西县| 定襄县| 上饶县| 凯里市| 大姚县| 达州市| 庆云县| 海丰县| 阳城县| 黄石市| 安康市| 裕民县| 申扎县| 大庆市| 双辽市| 屏南县| 辽阳市| 莱阳市| 杂多县| 白沙| 丹凤县| 博白县| 五华县| 朝阳市| 兴文县| 陕西省| 齐河县| 贵定县| 高雄市| 凭祥市| 明水县| 基隆市| 银川市| 泰和县| 怀柔区| 宜良县| 闽清县|