好! 我告訴你。 我畢業(yè)兩年了,都是做c/c++開(kāi)發(fā)方面的~
首先說(shuō)一下數據結構和vc/mfc以及數據結構的應用,vc/mfc主要是開(kāi)發(fā)上位機軟件,即pc機上的軟件的。一般情況下做vc一般開(kāi)發(fā)不需要掌握太多的數據結構知識。開(kāi)發(fā)中不會(huì )用太多,了解就夠了。數據結構一般常用在嵌入式開(kāi)發(fā),譬如路由器開(kāi)發(fā)里常用到樹(shù)結構。
第二數據結構和數學(xué),數據結構里用的最多的是離散數學(xué),尤其是樹(shù)和圖,基本就是離散數學(xué)的知識,其次是線(xiàn)性代數里的矩陣也用的比較多。所以學(xué)習數據結構也不一定要把所有的數學(xué)都學(xué)好。不過(guò)要想學(xué)得好必須先學(xué)好我指的那幾點(diǎn)。否則學(xué)起來(lái)比較吃力。
第三c++、數據結構、vc++。的順序問(wèn)題,數據結構是不分語(yǔ)種的,但你要想學(xué)c++版的數據結構,你首先得了解c++的一般語(yǔ)法吧,至少得看懂偽代碼,常用的c++結構,指針、類(lèi)的使用等。要知道c++是計算機語(yǔ)言、vc是開(kāi)發(fā)工具、數據結構是程序的思路,數學(xué)是基礎。好了,不啰嗦了,相信你都已經(jīng)明白了
第一章 什么是數據結構1.1 基本概念和術(shù)語(yǔ)1.2 數據的邏輯結構和物理結構 1.1 基本概念和術(shù)語(yǔ)1.數據(data): 是對客觀(guān)事物的符號的表示,是所有能輸入到計算機中并被計算機程序處理的符號的總稱(chēng)。
2.數據元素(data element): 是數據的基本單位,在計算機程序中通常作為一個(gè)整體來(lái)處理。一個(gè)數據元素由多個(gè) 數據項(data item)組成,數據 項是數據不可分割的最小單位。
3.數據結構(data structure): 是相互之間存在一種或多種特定關(guān)系的數據元素的集合。數據結構是一個(gè)二元組,記為: data_structure=(D,S).其中D為數據元素的集合,S是D上關(guān)系的集合。
數據元素相互之間的關(guān)系稱(chēng)為結構(structure)。根據數據元素之間關(guān)系的不同特性,通常由下列四類(lèi)基本結構: (1)集合:數據元素間的關(guān)系是同屬一個(gè)集合。
(圖1) (2)線(xiàn)性結構:數據元素間存在一對一的關(guān)系。(圖2) (3)樹(shù)形結構:結構中的元素間的關(guān)系是一對多的關(guān)系。
(圖3) (4)圖(網(wǎng))狀結構:結構中的元素間的關(guān)系是多對多的關(guān)系。(圖4) 1.2 數據的邏輯結構和物理結構邏輯結構:數據元素之間存在的關(guān)系(邏輯關(guān)系)叫數據的邏輯結構。
物理結構:數據結構在計算機中的表示(映象)叫數據的物理結構。 一種邏輯結構可映象成不同的存儲結構:順序存儲結構和非順序存儲結構(鏈式存儲結構和散列結構)。
第一章:數據結構概述一、什么是數據結構1、作者開(kāi)篇談到: 一般來(lái)說(shuō)解決一個(gè)具體的問(wèn)題時(shí),大致需要經(jīng)過(guò)下列幾個(gè)步驟:首先要從具體的問(wèn)題抽象出一個(gè)適當的數學(xué)模型,然后設計一個(gè)解此數學(xué)模型的算法,最后編寫(xiě)出程序代碼,進(jìn)行測試、調整直至得到最終的解決方案。
總結為:現實(shí)中具體的問(wèn)題—>數學(xué)模型—>算法程序—>解決方案動(dòng)作為:抽象提取、設計編碼、測試調整2、數學(xué)角度闡述: 尋求數學(xué)模型的實(shí)質(zhì)是分析問(wèn)題,從中提取操作的對象,并找出這些操作對象之間含有的關(guān)系,然后用數學(xué)的語(yǔ)言加以描述。3、定義數據結構: 描述這類(lèi)非數值計算問(wèn)題的數學(xué)模型不再是數學(xué)方程,而是諸如表、樹(shù)和圖之類(lèi)的數據結構,因此,簡(jiǎn)單來(lái)說(shuō),數據結構是一門(mén)研究非數值計算的程序設計問(wèn)題中計算機的操作對象以及它們之間關(guān)系和操作等的學(xué)科,用一句話(huà)來(lái)說(shuō)就是,數據結構是相互之間存在一種或多種特定關(guān)系的數據元素的集合。
研究對象:1、集合2、線(xiàn)性結構3、樹(shù)形結構4、圖狀結構(網(wǎng)狀結構) 結構分類(lèi):1、數據的邏輯結構2、數據的物理結構(存儲結構) 關(guān)系表示:1、順序映像2、非順序映像,兩者分別對應為順序存儲結構、鏈式存儲結構二、算法和算法分析 1、算法的五個(gè)特性:有窮性、確定性、可行性、輸入和輸出 2、算法設計的要求:正確性、可讀性、健壯性以及效率與低存儲量需求 3、算法的度量:時(shí)間復雜度和空間復雜度 總結:編寫(xiě)代碼設計算法時(shí)候首先先考慮算法的正確性,確保程序能夠滿(mǎn)足要求,在正確性的前提下再進(jìn)一步考慮算法的可讀性、健壯性、拓展性以及算法的效率等。第二章:線(xiàn)性表一、線(xiàn)性表的定義 線(xiàn)性結構的特點(diǎn)是:在數據元素的非空有限集中(1)存在唯一的一個(gè)被稱(chēng)做“第一個(gè)”的數據元素;(2)存在唯一的一個(gè)被稱(chēng)做“最后一個(gè)”的數據元素;(3)除第一個(gè)之外,集合中每個(gè)數據元素均只有一個(gè)前驅?zhuān)唬?)除最后一個(gè)元素之外,集合中每個(gè)數據元素均只有一個(gè)后繼。
線(xiàn)性表是最常用并且最簡(jiǎn)單的一種數據結構,簡(jiǎn)單來(lái)說(shuō),一個(gè)線(xiàn)性表是n個(gè)數據元素的有限序列。至于每個(gè)數據元素的具體含義,在不同的情況下各不相同,既可以是一個(gè)數也可以是一個(gè)符號等等。
二、線(xiàn)性表的操作 線(xiàn)性表是一個(gè)相當靈活的數據結構,它的長(cháng)度可根據需要增長(cháng)或者縮短,即對線(xiàn)性表的數據元素不但可以進(jìn)行訪(fǎng)問(wèn),還可以進(jìn)行插入和刪除等操作。線(xiàn)性表存儲方式有兩種,順序存儲和鏈式存儲,下面通過(guò)代碼進(jìn)行簡(jiǎn)單模擬操作。
第三章:棧和隊列 棧和隊列是兩種重要的線(xiàn)性結構,從數據結構的角度看,棧和隊列也是線(xiàn)性表,其特殊性在于棧和隊列的基本操作是線(xiàn)性表操作的子集,它們是操作受限制的線(xiàn)性表,因此可以稱(chēng)為限定性的數據結構。一、棧的定義 棧是限定在表尾進(jìn)行插入或刪除操作的線(xiàn)性表,棧的特定是先進(jìn)后出。
棧的存儲方式有兩種,一種是順序棧另外一種是鏈式棧,下面只通過(guò)代碼簡(jiǎn)單模擬棧的操作。二、棧的應用 棧的應用主要有數制轉換、括號匹配的檢驗、迷宮問(wèn)題求解以及表達式求值。
另外棧遞歸實(shí)現的經(jīng)典例子有八皇后問(wèn)題、漢諾塔問(wèn)題等。三、隊列的定義 隊列和棧有點(diǎn)不同,隊列是一種先進(jìn)先出得線(xiàn)性表,它只能夠在表的一端進(jìn)行插入另外一頭進(jìn)行刪除操作。
隊列在程序設計中比較常見(jiàn)的例子是操作系統中的作業(yè)排隊。雙端隊列、循環(huán)隊列有時(shí)間再進(jìn)一步演進(jìn),暫時(shí)先了解些基本概念。
第四章:串一、串的定義 計算機上的非數值處理的對象基本上都是字符串數據。串是由零個(gè)或多個(gè)字符組成的有限序列。
串中字符的數目成為字符串的長(cháng)度,零個(gè)字符的串成為空串。串的模式匹配算法經(jīng)典的是KMP算法。
第五章:數組和廣義表一、數組和廣義表定義 數組是讀者已經(jīng)很熟悉的一種數據類(lèi)型,幾乎所有的程序設計語(yǔ)言都把數組類(lèi)型設為固有的類(lèi)型。數組的應用中涉及到一個(gè)比較重要的數學(xué)知識,矩陣的壓縮存儲問(wèn)題。
廣義表是線(xiàn)性表的推廣,在java開(kāi)發(fā)中好像用得不多,有時(shí)間再進(jìn)一步學(xué)習。 第六章:樹(shù)和二叉樹(shù)一、樹(shù)的定義和基本操作1、樹(shù)的特點(diǎn) 樹(shù)是一個(gè)結點(diǎn)n的有限集,在任意一顆樹(shù)非空樹(shù)中:1、有且只有一個(gè)根結點(diǎn),2、當n>1時(shí),其余結點(diǎn)分為m(m>0)個(gè)互不相交的有限集,其中每個(gè)集合本身又是一棵樹(shù),叫做根的子樹(shù)。
關(guān)鍵詞組:有限集、唯一性、對稱(chēng)性、遞歸性。 基本術(shù)語(yǔ):結點(diǎn)、度、葉子、分支結點(diǎn)、孩子、雙親、兄弟、層次以及深度等。
基本操作:構造初始化樹(shù)、取得左子樹(shù)或右子樹(shù)、插入結點(diǎn)、刪除結點(diǎn)、樹(shù)的遍歷等等。2、線(xiàn)性結構VS樹(shù)結構 線(xiàn)性結構是一個(gè)“序列”,元素之間存在的是“一對一”的關(guān)系,而樹(shù)是一個(gè)層次結構,元素之間存在的是“一對多”的關(guān)系。
二、二叉樹(shù)的定義1、二叉樹(shù)的特點(diǎn) 每個(gè)結點(diǎn)至多只有二棵子樹(shù)(即二叉樹(shù)中不存在度大于2的結點(diǎn)),并且二叉樹(shù)的子樹(shù)有左右之分,其次序不能顛倒。 關(guān)鍵詞組:對稱(chēng)、次序2、二叉樹(shù)的具體實(shí)例 滿(mǎn)二叉樹(shù)、完全二叉樹(shù)、平衡二叉樹(shù)等,具體區別參考書(shū)籍教材詳解。
3、二叉樹(shù)的存儲結構 主要分為兩種方式,一類(lèi)是順序結構(可使用一組地址連續的存儲單元依次自上而下、自左至右存儲完全二叉樹(shù)上的結點(diǎn)元。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.125秒