數(shù)據(jù)結(jié)構(gòu)

出版時(shí)間:2010-6  出版社:清華大學(xué)出版社  作者:段恩澤,肖守柏 主編  頁(yè)數(shù):291  
Tag標(biāo)簽:無(wú)  

前言

  自從美國(guó)唐·歐·克努特教授用匯編語(yǔ)言編寫(xiě)的《計(jì)算機(jī)程序設(shè)計(jì)技巧》第一卷《基本算法》問(wèn)世以來(lái),已經(jīng)出現(xiàn)了用Pascal、Java、C、C++、C#等語(yǔ)言編寫(xiě)的數(shù)據(jù)結(jié)構(gòu)方面的書(shū)??傮w說(shuō)來(lái),這些語(yǔ)言基本上分為面向過(guò)程的語(yǔ)言和面向?qū)ο蟮恼Z(yǔ)言?xún)纱箢?lèi),也出現(xiàn)過(guò)采用兩種語(yǔ)言描述數(shù)據(jù)結(jié)構(gòu)的書(shū)籍,如C和C++語(yǔ)言描述,但作者實(shí)際上是按照C++語(yǔ)言描述。同時(shí)采用面向過(guò)程和面向?qū)ο笳Z(yǔ)言描述數(shù)據(jù)結(jié)構(gòu),目前國(guó)內(nèi)基本上是空白。對(duì)于同一種數(shù)據(jù)結(jié)構(gòu)與算法,同時(shí)采用面向過(guò)程和面向?qū)ο笳Z(yǔ)言進(jìn)行描述,可以從中更深刻理解這兩種思想的不同,這對(duì)于深刻理解計(jì)算機(jī)語(yǔ)言和思想有著重要的作用。C語(yǔ)言是現(xiàn)在最流行的面向過(guò)程的語(yǔ)言,在業(yè)界使用非常廣泛。而C#語(yǔ)言作為微軟在新一代開(kāi)發(fā)平臺(tái)(.NET)上推出的、完全面向?qū)ο蟮恼Z(yǔ)言,憑著其簡(jiǎn)潔、高效、模板、標(biāo)準(zhǔn)化的特性,使得C#語(yǔ)言像程序設(shè)計(jì)語(yǔ)言中的一件藝術(shù)品,也吸引著越來(lái)越多的開(kāi)發(fā)人員。當(dāng)然,C#語(yǔ)言也吸收了C語(yǔ)言的一些東西,如語(yǔ)法等,所以,在有些方面,C#與C是相似的。鑒于此,編者決定編寫(xiě)本書(shū),使用C和C#語(yǔ)言來(lái)描述數(shù)據(jù)結(jié)構(gòu)與算法?! ”緯?shū)共分為8章,第1章介紹了數(shù)據(jù)結(jié)構(gòu)和算法的基本概念及本書(shū)用到的數(shù)學(xué)知識(shí)、C語(yǔ)言知識(shí)和C#語(yǔ)言的知識(shí);第2~6章分別討論了線性表、棧、隊(duì)列、串、數(shù)組、樹(shù)、二叉樹(shù)及圖等常用的數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用;第7、8兩章分別討論了排序和查找常用的各種方法及其應(yīng)用?! ∮捎诒緯?shū)采用C和C#兩種語(yǔ)言對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述,為節(jié)省篇幅,本書(shū)對(duì)內(nèi)容的處理如下:先對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析,如數(shù)據(jù)結(jié)構(gòu)的概念、邏輯結(jié)構(gòu)、物理結(jié)構(gòu)等,然后給出每種數(shù)據(jù)結(jié)構(gòu)的兩種語(yǔ)言描述。這樣,把重點(diǎn)放在了數(shù)據(jù)結(jié)構(gòu)本身上,而不只是考慮其語(yǔ)言實(shí)現(xiàn)。這體現(xiàn)了“數(shù)據(jù)結(jié)構(gòu)”課程的目的,即理解數(shù)據(jù)結(jié)構(gòu)的特性,培養(yǎng)計(jì)算機(jī)的數(shù)據(jù)抽象能力和計(jì)算機(jī)思維能力?! ”緯?shū)由成都東軟信息技術(shù)職業(yè)學(xué)院段恩澤、江西藍(lán)天學(xué)院肖守柏兩位老師主編,江西藍(lán)天學(xué)院蔡愛(ài)平、江西吉安市信息化工作辦公室習(xí)愛(ài)民兩位老師共同完成。其中,C語(yǔ)言部分,第1、2章和第3~5章分別由肖守柏、蔡愛(ài)平兩位老師編寫(xiě);第6~8章由習(xí)愛(ài)民老師編寫(xiě)。C#語(yǔ)言部分由段恩澤老師編寫(xiě),全書(shū)由段恩澤老師統(tǒng)稿、整理。

內(nèi)容概要

“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)及相關(guān)專(zhuān)業(yè)必修的核心基礎(chǔ)課程。本書(shū)采用C和C#兩種語(yǔ)言作為算法描述的語(yǔ)言,對(duì)常用的數(shù)據(jù)結(jié)構(gòu)與算法作了系統(tǒng)的介紹,力求概念清晰簡(jiǎn)單,注重實(shí)際應(yīng)用。本書(shū)通過(guò)兩種語(yǔ)言對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的不同描述來(lái)揭示面向過(guò)程和面向?qū)ο髢煞N不同的思想。全書(shū)共分為8章,依次介紹了數(shù)據(jù)結(jié)構(gòu)與算法及本書(shū)用到的數(shù)學(xué)、C和C#知識(shí)、線性表、棧和隊(duì)列、串和數(shù)組、樹(shù)型結(jié)構(gòu)和圖結(jié)構(gòu),以及排序和查找等基本運(yùn)算?! ”緯?shū)主要面向高職高專(zhuān)院校計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生,也可作為非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的選修教材及計(jì)算機(jī)應(yīng)用技術(shù)人員的自學(xué)參考書(shū)。

書(shū)籍目錄

第1章  緒論	 1.1  數(shù)據(jù)結(jié)構(gòu)	  1.1.1  學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的必要性	  1.1.2  基本概念和術(shù)語(yǔ)	 1.2  算法	  1.2.1  算法的特性	  1.2.2  算法的評(píng)價(jià)標(biāo)準(zhǔn)	  1.2.3  算法的時(shí)間復(fù)雜度	 1.3  數(shù)學(xué)預(yù)備知識(shí)	  1.3.1  集合	  1.3.2  常用的數(shù)學(xué)術(shù)語(yǔ)	  1.3.3  對(duì)數(shù)	  1.3.4  遞歸	 1.4  C預(yù)備知識(shí)	  1.4.1  指針	  1.4.2  結(jié)構(gòu)體	 1.5  C#預(yù)備知識(shí)	  1.5.1  接口	  1.5.2  泛型編程	 本章小結(jié)	 習(xí)題	第2章  線性表	 2.1  線性表的邏輯結(jié)構(gòu)	  2.1.1  線性表的定義	  2.1.2  線性表的基本操作	 2.2  順序表	  2.2.1  順序表的定義	  2.2.2  順序表數(shù)據(jù)關(guān)系的語(yǔ)言描述	  2.2.3  順序表數(shù)據(jù)操作的語(yǔ)言描述	  2.2.4  順序表應(yīng)用舉例	 2.3  單鏈表	  2.3.1  單鏈表的定義	  2.3.2  單鏈表數(shù)據(jù)關(guān)系的語(yǔ)言描述	  2.3.3  單鏈表數(shù)據(jù)操作的語(yǔ)言描述	  2.3.4  單鏈表應(yīng)用舉例	 2.4  其他鏈表	  2.4.1  雙向鏈表	  2.4.2  循環(huán)鏈表	 本章小結(jié)	 習(xí)題	第3章  棧和隊(duì)列	 3.1  棧	  3.1.1  棧的定義及基本運(yùn)算	  3.1.2  順序棧的存儲(chǔ)和運(yùn)算實(shí)現(xiàn)	  3.1.3  鏈棧的存儲(chǔ)和運(yùn)算實(shí)現(xiàn)	  3.1.4  棧的應(yīng)用舉例	 3.2  隊(duì)列	  3.2.1  隊(duì)列的定義及基本運(yùn)算	  3.2.2  循環(huán)順序隊(duì)列的存儲(chǔ)和運(yùn)算實(shí)現(xiàn)	  3.2.3  鏈隊(duì)列的存儲(chǔ)和運(yùn)算實(shí)現(xiàn)	  3.2.4  隊(duì)列的應(yīng)用舉例	 本章小結(jié)	 習(xí)題	第4章  串和數(shù)組	 4.1  串	  4.1.1  串的基本概念及基本運(yùn)算	  4.1.2  串存儲(chǔ)及基本運(yùn)算實(shí)現(xiàn)	  4.1.3  串的基本操作的實(shí)現(xiàn)	  4.1.4  模式匹配	 4.2  數(shù)組	  4.2.1  數(shù)組的邏輯結(jié)構(gòu)	  4.2.2  數(shù)組的內(nèi)存映像	 本章小結(jié)	 習(xí)題	第5章  樹(shù)和二叉樹(shù)第6章  圖	第7章  排序第8章  查找參考文獻(xiàn)

章節(jié)摘錄

  在通用的計(jì)算機(jī)高級(jí)語(yǔ)言中,一般都有整型、實(shí)型、字符型、數(shù)組、枚舉、結(jié)構(gòu)體等數(shù)據(jù)類(lèi)型。數(shù)據(jù)類(lèi)型可分為兩類(lèi):一類(lèi)是非結(jié)構(gòu)的原子類(lèi)型,如整型、實(shí)型、字符型等基本類(lèi)型;另一類(lèi)是結(jié)構(gòu)類(lèi)型,它的成分可以由多個(gè)結(jié)構(gòu)類(lèi)型組成,并可以分解。結(jié)構(gòu)類(lèi)型的成分可以是非結(jié)構(gòu)的,也可以是結(jié)構(gòu)的。例如,數(shù)組的成分可以是整型等基本類(lèi)型,也可以是數(shù)組等結(jié)構(gòu)類(lèi)型?! #語(yǔ)言的數(shù)據(jù)類(lèi)型比C多。C#不僅有字符串這種基本的數(shù)據(jù)類(lèi)型,還有類(lèi)、委托、接口、事件等數(shù)據(jù)類(lèi)型。其中原因在于兩者出現(xiàn)的背景不同。C語(yǔ)言是隨著UNIX操作系統(tǒng)的出現(xiàn)而流行起來(lái)的,主要用來(lái)書(shū)寫(xiě)系統(tǒng)代碼,應(yīng)用在底層上,速度快、效率高。然而,C語(yǔ)言存在一些缺陷,如類(lèi)型檢查機(jī)制相對(duì)較弱、缺少支持代碼重用的語(yǔ)言結(jié)構(gòu)等,造成用C語(yǔ)言開(kāi)發(fā)大程序比較困難。而C#語(yǔ)言是Microsoft.NET Framework的首選語(yǔ)言,在Intemet的大環(huán)境下出現(xiàn)的,為了編寫(xiě)面向網(wǎng)絡(luò)的應(yīng)用。所以,C#語(yǔ)言的抽象程度更高,應(yīng)用范圍更廣,能夠開(kāi)發(fā)大程序,因此,C#語(yǔ)言的數(shù)據(jù)類(lèi)型的種類(lèi)更多?! ?.抽象數(shù)據(jù)類(lèi)型  抽象數(shù)據(jù)類(lèi)型(Abstract Data Type,ADT)是指一些數(shù)據(jù)以及對(duì)這些數(shù)據(jù)所進(jìn)行的操作的集合。數(shù)據(jù)之間有一定的關(guān)系,不同的抽象數(shù)據(jù)類(lèi)型的數(shù)據(jù)之間的關(guān)系不同。對(duì)數(shù)據(jù)進(jìn)行的操作由數(shù)據(jù)間的關(guān)系決定。數(shù)據(jù)問(wèn)的關(guān)系不同,對(duì)數(shù)據(jù)的操作也就不同。這些操作既向程序的其余部分描述了這些數(shù)據(jù)是怎么樣的,也允許程序的其余部分改變這些數(shù)據(jù)。一個(gè)ADT可能是一個(gè)圖形窗體以及所有能影響到該窗體的操作,也可以是一個(gè)文件以及對(duì)這個(gè)文件進(jìn)行的操作,或者是一張保險(xiǎn)費(fèi)率表及相關(guān)操作等?! 鹘y(tǒng)的教科書(shū)在講到抽象數(shù)據(jù)類(lèi)型時(shí),總會(huì)用一些數(shù)學(xué)中的概念進(jìn)行描述。典型的描述是:“你可以把抽象數(shù)據(jù)類(lèi)型想成一個(gè)定義有一組操作的數(shù)學(xué)模型。”這種描述給人的感覺(jué)好像你從不會(huì)真正用到抽象數(shù)據(jù)類(lèi)型似的——除非拿它來(lái)催眠。  把抽象數(shù)據(jù)類(lèi)型解釋得這么空洞是完全丟了重點(diǎn)。抽象數(shù)據(jù)類(lèi)型可以讓你像在現(xiàn)實(shí)世界中一樣操作實(shí)體,而不必在底層的實(shí)現(xiàn)上擺弄實(shí)體,如不用再向鏈表中插入一個(gè)結(jié)點(diǎn)了,而是可以在電子表格中添加一個(gè)數(shù)據(jù)單元,或向一組窗體類(lèi)型中添加一個(gè)新類(lèi)型,或給火車(chē)模型加掛一節(jié)車(chē)廂。也就是說(shuō),抽象數(shù)據(jù)類(lèi)型使你可以在問(wèn)題域中思考問(wèn)題,而不管底層是如何實(shí)現(xiàn)的。這就是“抽象數(shù)據(jù)類(lèi)型”概念中“抽象”的含義。也就是說(shuō),它把底層的信息隱藏起來(lái),修改底層信息不會(huì)影響該抽象數(shù)據(jù)類(lèi)型的使用,因?yàn)樗峁┑墓胁僮鳑](méi)有改變。并且,如果數(shù)據(jù)類(lèi)型發(fā)生改變,也只需在一處修改而不會(huì)影響到整個(gè)程序。

編輯推薦

  《數(shù)據(jù)結(jié)構(gòu)(C/C#語(yǔ)言版)》特色:通過(guò)C/C#對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的描述來(lái)揭示面向過(guò)程和面向?qū)ο蟮乃枷搿 ±斫鈹?shù)據(jù)結(jié)構(gòu)特性,培養(yǎng)計(jì)算機(jī)數(shù)據(jù)抽象能力和計(jì)算機(jī)思維能力

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    數(shù)據(jù)結(jié)構(gòu) PDF格式下載


用戶(hù)評(píng)論 (總計(jì)0條)

 
 

 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7