第一章 什么是數(shù)據(jù)結(jié)構(gòu)1.1 基本概念和術(shù)語(yǔ)1.2 數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu) 1.1 基本概念和術(shù)語(yǔ)1.數(shù)據(jù)(data): 是對(duì)客觀事物的符號(hào)的表示,是所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序處理的符號(hào)的總稱(chēng)。
2.數(shù)據(jù)元素(data element): 是數(shù)據(jù)的基本單位,在計(jì)算機(jī)程序中通常作為一個(gè)整體來(lái)處理。一個(gè)數(shù)據(jù)元素由多個(gè) 數(shù)據(jù)項(xiàng)(data item)組成,數(shù)據(jù) 項(xiàng)是數(shù)據(jù)不可分割的最小單位。
3.數(shù)據(jù)結(jié)構(gòu)(data structure): 是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)是一個(gè)二元組,記為: data_structure=(D,S).其中D為數(shù)據(jù)元素的集合,S是D上關(guān)系的集合。
數(shù)據(jù)元素相互之間的關(guān)系稱(chēng)為結(jié)構(gòu)(structure)。根據(jù)數(shù)據(jù)元素之間關(guān)系的不同特性,通常由下列四類(lèi)基本結(jié)構(gòu): (1)集合:數(shù)據(jù)元素間的關(guān)系是同屬一個(gè)集合。
(圖1) (2)線性結(jié)構(gòu):數(shù)據(jù)元素間存在一對(duì)一的關(guān)系。(圖2) (3)樹(shù)形結(jié)構(gòu):結(jié)構(gòu)中的元素間的關(guān)系是一對(duì)多的關(guān)系。
(圖3) (4)圖(網(wǎng))狀結(jié)構(gòu):結(jié)構(gòu)中的元素間的關(guān)系是多對(duì)多的關(guān)系。(圖4) 1.2 數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)邏輯結(jié)構(gòu):數(shù)據(jù)元素之間存在的關(guān)系(邏輯關(guān)系)叫數(shù)據(jù)的邏輯結(jié)構(gòu)。
物理結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示(映象)叫數(shù)據(jù)的物理結(jié)構(gòu)。 一種邏輯結(jié)構(gòu)可映象成不同的存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和非順序存儲(chǔ)結(jié)構(gòu)(鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)和散列結(jié)構(gòu))。
目前大數(shù)據(jù)領(lǐng)域內(nèi)的主要工作崗位涉及到大數(shù)據(jù)采集工程師、大數(shù)據(jù)分析工程師、大數(shù)據(jù)開(kāi)發(fā)工程師和大數(shù)據(jù)運(yùn)維工程師,如果想轉(zhuǎn)型為大數(shù)據(jù)工程師,可以根據(jù)自身的知識(shí)結(jié)構(gòu)和能力特點(diǎn)選擇一個(gè)具體的發(fā)展方向。
大數(shù)據(jù)采集工程師主要的工作任務(wù)是完成數(shù)據(jù)的采集、整理和存儲(chǔ),雖然整體的技術(shù)含量并不算太高,但是涉及到的知識(shí)面卻比較廣泛。由于目前大數(shù)據(jù)的主要數(shù)據(jù)采集渠道包括物聯(lián)網(wǎng)、互聯(lián)網(wǎng)和傳統(tǒng)信息系統(tǒng),所以大數(shù)據(jù)采集工程師也需要掌握這些相關(guān)技術(shù),比如要掌握如何通過(guò)程序設(shè)計(jì)來(lái)完成網(wǎng)絡(luò)信息提取等。
另外,數(shù)據(jù)的整理和存儲(chǔ)還需要掌握各種數(shù)據(jù)庫(kù)知識(shí)(包括NoSql數(shù)據(jù)庫(kù)),以及云計(jì)算相關(guān)知識(shí)。對(duì)于具有網(wǎng)絡(luò)基礎(chǔ)的IT行業(yè)從業(yè)者來(lái)說(shuō),轉(zhuǎn)型大數(shù)據(jù)采集工程師或者大數(shù)據(jù)運(yùn)維工程師是不錯(cuò)的選擇。
大數(shù)據(jù)分析工程師主要的工作內(nèi)容是進(jìn)行大數(shù)據(jù)分析和呈現(xiàn),大數(shù)據(jù)分析目前有兩種主要方式,分別是統(tǒng)計(jì)學(xué)方式和機(jī)器學(xué)習(xí)方式,所以要想從事大數(shù)據(jù)分析工程師崗位,需要具有扎實(shí)的數(shù)學(xué)基礎(chǔ)和程序設(shè)計(jì)基礎(chǔ)。不少數(shù)學(xué)專(zhuān)業(yè)和統(tǒng)計(jì)學(xué)專(zhuān)業(yè)的職場(chǎng)人,可以考慮轉(zhuǎn)型大數(shù)據(jù)分析工程師崗位,目前該崗位的人才需求量還是比較大的。
大數(shù)據(jù)開(kāi)發(fā)工程師主要完成兩方面任務(wù),其一是進(jìn)行大數(shù)據(jù)平臺(tái)開(kāi)發(fā),其二是進(jìn)行大數(shù)據(jù)應(yīng)用開(kāi)發(fā)。在當(dāng)前大數(shù)據(jù)技術(shù)體系逐漸成熟的情況下,大數(shù)據(jù)應(yīng)用開(kāi)發(fā)的崗位需求量會(huì)更大一些,相對(duì)于大數(shù)據(jù)平臺(tái)開(kāi)發(fā)來(lái)說(shuō),大數(shù)據(jù)應(yīng)用開(kāi)發(fā)更注重與應(yīng)用場(chǎng)景的結(jié)合。
對(duì)于廣大程序員(Java程序員、Python程序員)來(lái)說(shuō),轉(zhuǎn)向大數(shù)據(jù)開(kāi)發(fā)工程師崗位會(huì)更容易一些。關(guān)于大數(shù)據(jù)工程師需要具備哪些知識(shí),青藤小編就和您分享到這里了。
如果您對(duì)大數(shù)據(jù)工程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關(guān)于數(shù)據(jù)分析師、大數(shù)據(jù)工程師的技巧及素材等內(nèi)容,可以點(diǎn)擊本站的其他文章進(jìn)行學(xué)習(xí)。
一般數(shù)據(jù)庫(kù)工程師的主要工作包括:數(shù)據(jù)備份;數(shù)據(jù)庫(kù)日常維護(hù);數(shù)據(jù)結(jié)構(gòu)方面的設(shè)計(jì);SQL調(diào)優(yōu);解決由于數(shù)據(jù)庫(kù)操作所造成的系統(tǒng)性能問(wèn)題;給開(kāi)發(fā)人員開(kāi)展一些數(shù)據(jù)庫(kù)方面的培訓(xùn)。那么成為一名合格的數(shù)據(jù)庫(kù)工程師需掌握哪些知識(shí)技能呢?
一、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)分析及規(guī)劃:1.軟件工程與軟件生命周期。 2.數(shù)據(jù)庫(kù)系統(tǒng)生命周期。 3.數(shù)據(jù)庫(kù)開(kāi)發(fā)方法與工具。 4.數(shù)據(jù)庫(kù)應(yīng)用體系結(jié)構(gòu)。 5.數(shù)據(jù)庫(kù)應(yīng)用接口。
二、數(shù)據(jù)庫(kù)設(shè)計(jì)及實(shí)現(xiàn): 1.概念設(shè)計(jì)。 2.邏輯設(shè)計(jì)。 3.物理設(shè)計(jì)。 4.數(shù)據(jù)庫(kù)對(duì)象實(shí)現(xiàn)及操作。
三、數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù):1.存儲(chǔ)與文件結(jié)構(gòu)。 2. 索引技術(shù)。
四、并發(fā)控制技術(shù):1.事務(wù)管理。 2.并發(fā)控制技術(shù)。3.死鎖處理。
五、數(shù)據(jù)庫(kù)管理與維護(hù):1、數(shù)據(jù)完整性。 2、數(shù)據(jù)庫(kù)安全性。 3、數(shù)據(jù)庫(kù)可靠性。 4、監(jiān)控分析。 5、參數(shù)調(diào)整。 6、查詢優(yōu)化。 7、空間管理。
六、數(shù)據(jù)庫(kù)技術(shù)的發(fā)展與新技術(shù):1、分布式數(shù)據(jù)庫(kù)。 2、對(duì)象數(shù)據(jù)庫(kù)。 3、并行數(shù)據(jù)庫(kù)。 4、數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘。
建企項(xiàng)目和企業(yè)管理面對(duì)的數(shù)據(jù)可分為兩大類(lèi),即基礎(chǔ)數(shù)據(jù)和過(guò)程數(shù)據(jù)。基礎(chǔ)數(shù)據(jù)是在管理中和流程關(guān)系不大的數(shù)據(jù),不因施工方案、管理模式變化而變化,如工程實(shí)物量、各生產(chǎn)要素(人材機(jī))價(jià)格、企業(yè)消耗量(企業(yè)定額)等項(xiàng)。工程實(shí)物量決定于施工圖紙;各生產(chǎn)要素價(jià)格,由市場(chǎng)客觀行情確定;企業(yè)消耗量指標(biāo)也相對(duì)固定不變。而費(fèi)用收支、物資采購(gòu)、出入庫(kù)等數(shù)據(jù)都會(huì)在生產(chǎn)過(guò)程中因施工方案、管理流程和合作單位的變化而變化,因此是過(guò)程數(shù)據(jù)。
兩類(lèi)數(shù)據(jù)種類(lèi)都很多,但兩類(lèi)數(shù)據(jù)中都有極為關(guān)鍵的核心數(shù)據(jù)?;A(chǔ)數(shù)據(jù)中最為關(guān)鍵的是實(shí)物量、生產(chǎn)要素價(jià)格、消耗量指標(biāo)和造價(jià)(預(yù)算成本)四項(xiàng);過(guò)程數(shù)據(jù)中最核心的是資金和各種資源進(jìn)出、消耗過(guò)程數(shù)據(jù)。這些核心數(shù)據(jù)決定了項(xiàng)目和企業(yè)的業(yè)務(wù)競(jìng)爭(zhēng)力、成本控制和盈利水平。只有掌握了工程基礎(chǔ)數(shù)據(jù)才能有效控制項(xiàng)目成本,是項(xiàng)目成本管控的基礎(chǔ)對(duì)象,也是成功的關(guān)鍵。
大數(shù)據(jù)技術(shù)體系龐大,包括的知識(shí)較多
1、學(xué)習(xí)大數(shù)據(jù)首先要學(xué)習(xí)Java基礎(chǔ)
Java是大數(shù)據(jù)學(xué)習(xí)需要的編程語(yǔ)言基礎(chǔ),因?yàn)榇髷?shù)據(jù)的開(kāi)發(fā)基于常用的高級(jí)語(yǔ)言。而且不論是學(xué)hadoop
2、學(xué)習(xí)大數(shù)據(jù)核心知識(shí)
Hadoop生態(tài)系統(tǒng);HDFS技術(shù);HBASE技術(shù);Sqoop使用流程;數(shù)據(jù)倉(cāng)庫(kù)工具HIVE;大數(shù)據(jù)離線分析Spark、Python語(yǔ)言;數(shù)據(jù)實(shí)時(shí)分析Storm;消息訂閱分發(fā)系統(tǒng)Kafka等。
3、學(xué)習(xí)大數(shù)據(jù)需要具備的能力
數(shù)學(xué)知識(shí),數(shù)學(xué)知識(shí)是數(shù)據(jù)分析師的基礎(chǔ)知識(shí)。對(duì)于數(shù)據(jù)分析師,了解一些描述統(tǒng)計(jì)相關(guān)的內(nèi)容,需要有一定公式計(jì)算能力,了解常用統(tǒng)計(jì)模型算法。而對(duì)于數(shù)據(jù)挖掘工程師來(lái)說(shuō),各類(lèi)算法也需要熟練使用,對(duì)數(shù)學(xué)的要求是最高的。
4、學(xué)習(xí)大數(shù)據(jù)可以應(yīng)用的領(lǐng)域
大數(shù)據(jù)技術(shù)可以應(yīng)用在各個(gè)領(lǐng)域,比如公安大數(shù)據(jù)、交通大數(shù)據(jù)、醫(yī)療大數(shù)據(jù)、就業(yè)大數(shù)據(jù)、環(huán)境大數(shù)據(jù)、圖像大數(shù)據(jù)、視頻大數(shù)據(jù)等等,應(yīng)用范圍非常廣泛。
程序員的考試要求:掌握數(shù)制及其轉(zhuǎn)換、數(shù)據(jù)的機(jī)內(nèi)表示、算術(shù)和邏輯運(yùn)算,以及相關(guān)的應(yīng)用數(shù)學(xué)基礎(chǔ)知識(shí);理解計(jì)算機(jī)的組成以及各主要部件的性能指標(biāo);掌握操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)知識(shí);熟練掌握計(jì)算機(jī)常用辦公軟件的基本操作方法;熟練掌握基本數(shù)據(jù)結(jié)構(gòu)和常用算法;熟練掌握C程序設(shè)計(jì)語(yǔ)言,以及C++、Java、Visual
Basic中一種程序設(shè)計(jì)語(yǔ)言;熟悉數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)和多媒體的基礎(chǔ)知識(shí);掌握軟件工程的基礎(chǔ)知識(shí),了解軟件過(guò)程基本知識(shí)、軟件開(kāi)發(fā)項(xiàng)目管理的常識(shí);了解常用信息技術(shù)標(biāo)準(zhǔn)、安全性,以及有關(guān)法律、法規(guī)的基本知識(shí)。
2、電子信息工程
業(yè)務(wù)培養(yǎng)目標(biāo):本專(zhuān)業(yè)培養(yǎng)具備電子技術(shù)和信息系統(tǒng)的基礎(chǔ)知識(shí),能從事各類(lèi)電子設(shè)備和信息系統(tǒng)的研究、設(shè)計(jì)、制造、應(yīng)用和開(kāi)發(fā)的高等工程技術(shù)人才。?
業(yè)務(wù)培養(yǎng)要求:本專(zhuān)業(yè)是一個(gè)電子和信息工程方面的較寬口徑專(zhuān)業(yè)。本專(zhuān)業(yè)學(xué)生主要學(xué)習(xí)信號(hào)的獲取與處理、電子設(shè)備與信息系統(tǒng)等方面的專(zhuān)業(yè)知識(shí),受到電子與信息工程實(shí)踐的基本訓(xùn)練,
具備設(shè)計(jì)、開(kāi)發(fā)、應(yīng)用和集成電子設(shè)備和信息系統(tǒng)的基本能力。?
畢業(yè)生應(yīng)獲得以下幾方面的知識(shí)和能力:?
1.較系統(tǒng)地掌握本專(zhuān)業(yè)領(lǐng)域?qū)拸V的技術(shù)基礎(chǔ)理論知識(shí),適應(yīng)電子和信息工程方面廣泛的工作范圍;?
2.掌握電子電路的基本理論和實(shí)驗(yàn)技術(shù),具備分析和設(shè)計(jì)電子設(shè)備的基本能力;?
3.掌握信息獲取、處理的基本理論和應(yīng)用的一般方法,具有設(shè)計(jì)、集成、應(yīng)用及計(jì)算機(jī)模擬信息系統(tǒng)的基本能力;?
4.了解信息產(chǎn)業(yè)的基本方針、政策和法規(guī),了解企業(yè)管理的基本知識(shí);?
5.了解電子設(shè)備和信息系統(tǒng)的理論前沿,具有研究、開(kāi)發(fā)新系統(tǒng)、新技術(shù)的初步能力。?
6.掌握文獻(xiàn)檢索、資料查詢的基本方法,具有一定的科學(xué)研究和實(shí)際工作能力。?
主干學(xué)科:電子科學(xué)與技術(shù)、信息與通信工程、計(jì)算機(jī)科學(xué)與技術(shù)?
主要課程:電路理論系列課程、計(jì)算機(jī)技術(shù)系列課程、信息理論與編碼、信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理、電磁場(chǎng)理論、自動(dòng)控制原理、感測(cè)技術(shù)等?
主要實(shí)踐性教學(xué)環(huán)節(jié):包括課程實(shí)驗(yàn)、計(jì)算機(jī)上機(jī)訓(xùn)練、課程設(shè)計(jì)、生產(chǎn)實(shí)習(xí)、畢業(yè)設(shè)計(jì)等,一般要求實(shí)踐教學(xué)環(huán)節(jié)不少于30周。?
主要專(zhuān)業(yè)實(shí)驗(yàn):至少完成本專(zhuān)業(yè)某一方向的一組專(zhuān)業(yè)實(shí)驗(yàn)?
修業(yè)年限:四年?
授予學(xué)位:工學(xué)學(xué)士?
相近專(zhuān)業(yè):通信工程?
前景廣闊的電子信息工程(這個(gè)專(zhuān)業(yè)上海的需求很大哦.很多企業(yè)都需要這方面的人才.)
電子信息工程是一門(mén)應(yīng)用計(jì)算機(jī)等現(xiàn)代化技術(shù)進(jìn)行電子信息控制和信息處理的學(xué)科,主要研究信息的獲取與處理,電子設(shè)備與信息系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)、應(yīng)用和集成?,F(xiàn)在,電子信息工程已經(jīng)涵蓋了社會(huì)的諸多方面,像電話交換局里怎么處理各種電話信號(hào),手機(jī)是怎樣傳遞我們的聲音甚至圖像的,我們周?chē)木W(wǎng)絡(luò)怎樣傳遞數(shù)據(jù),甚至信息化時(shí)代軍隊(duì)的信息傳遞中如何保密等都要涉及電子信息工程的應(yīng)用技術(shù)。我們可以通過(guò)一些基礎(chǔ)知識(shí)的學(xué)習(xí)認(rèn)識(shí)這些東西,并能夠應(yīng)用更先進(jìn)的技術(shù)進(jìn)行新產(chǎn)品的研究和開(kāi)發(fā)。
電子信息工程專(zhuān)業(yè)主要是學(xué)習(xí)基本電路知識(shí),并掌握用計(jì)算機(jī)等處理信息的方法。首先要有扎實(shí)的數(shù)學(xué)知識(shí),對(duì)物理學(xué)的要求也很高,并且主要是電學(xué)方面;要學(xué)習(xí)許多電路知識(shí)、電子技術(shù)、信號(hào)與系統(tǒng)、計(jì)算機(jī)控制原理、通信原理等基本課程。學(xué)習(xí)電子信息工程自己還要?jiǎng)邮衷O(shè)計(jì)、連接一些電路并結(jié)合計(jì)算機(jī)進(jìn)行實(shí)驗(yàn),對(duì)動(dòng)手操作和使用工具的要求也是比較高的。譬如自己連接傳感器的電路,用計(jì)算機(jī)設(shè)置小的通信系統(tǒng),還會(huì)參觀一些大公司的電子和信息處理設(shè)備,理解手機(jī)信號(hào)、有線電視是如何傳輸?shù)牡?,并能有機(jī)會(huì)在老師指導(dǎo)下參與大的工程設(shè)計(jì)。學(xué)習(xí)電子信息工程,要喜歡鉆研思考,善于開(kāi)動(dòng)腦筋發(fā)現(xiàn)問(wèn)題。
隨著社會(huì)信息化的深入,各行業(yè)大都需要電子信息工程專(zhuān)業(yè)人才,而且薪金很高。學(xué)生畢業(yè)后可以從事電子設(shè)備和信息系統(tǒng)的設(shè)計(jì)、應(yīng)用開(kāi)發(fā)以及技術(shù)管理等。比如,做電子工程師,設(shè)計(jì)開(kāi)發(fā)一些電子、通信器件;做軟件工程師,設(shè)計(jì)開(kāi)發(fā)與硬件相關(guān)的各種軟件;做項(xiàng)目主管,策劃一些大的系統(tǒng),這對(duì)經(jīng)驗(yàn)、知識(shí)要求很高;還可以繼續(xù)進(jìn)修成為教師,從事科研工作等。
一、考試說(shuō)明 1.考試要求 (1)掌握計(jì)算機(jī)體系結(jié)構(gòu)以及各主要部件的性能和基本工作原理; (2)掌握操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)知識(shí),了解編譯程序的基本知識(shí); (3)熟練掌握常用數(shù)據(jù)結(jié)構(gòu)和常用算法; (4)熟悉軟件工程和軟件開(kāi)發(fā)項(xiàng)目管理的基礎(chǔ)知識(shí); (5)熟悉計(jì)算機(jī)網(wǎng)絡(luò)的原理和技術(shù); (6)掌握數(shù)據(jù)庫(kù)原理及基本理論; (7)掌握常用的大型數(shù)據(jù)庫(kù)管理系統(tǒng)的應(yīng)用技術(shù); (8)掌握數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)方法和開(kāi)發(fā)過(guò)程; (9)熟悉數(shù)據(jù)庫(kù)系統(tǒng)的管理和維護(hù)方法,了解相關(guān)的安全技術(shù); (10)了解數(shù)據(jù)庫(kù)發(fā)展趨勢(shì)與新技術(shù); (11)掌握常用信息技術(shù)標(biāo)準(zhǔn)、安全性,以及有關(guān)法律、法規(guī)的基本知識(shí); (12)了解信息化、計(jì)算機(jī)應(yīng)用的基礎(chǔ)知識(shí); (13)正確閱讀和理解計(jì)算機(jī)領(lǐng)域的英文資料。
第一章:數(shù)據(jù)結(jié)構(gòu)概述一、什么是數(shù)據(jù)結(jié)構(gòu)1、作者開(kāi)篇談到: 一般來(lái)說(shuō)解決一個(gè)具體的問(wèn)題時(shí),大致需要經(jīng)過(guò)下列幾個(gè)步驟:首先要從具體的問(wèn)題抽象出一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,然后設(shè)計(jì)一個(gè)解此數(shù)學(xué)模型的算法,最后編寫(xiě)出程序代碼,進(jìn)行測(cè)試、調(diào)整直至得到最終的解決方案。
總結(jié)為:現(xiàn)實(shí)中具體的問(wèn)題—>數(shù)學(xué)模型—>算法程序—>解決方案動(dòng)作為:抽象提取、設(shè)計(jì)編碼、測(cè)試調(diào)整2、數(shù)學(xué)角度闡述: 尋求數(shù)學(xué)模型的實(shí)質(zhì)是分析問(wèn)題,從中提取操作的對(duì)象,并找出這些操作對(duì)象之間含有的關(guān)系,然后用數(shù)學(xué)的語(yǔ)言加以描述。3、定義數(shù)據(jù)結(jié)構(gòu): 描述這類(lèi)非數(shù)值計(jì)算問(wèn)題的數(shù)學(xué)模型不再是數(shù)學(xué)方程,而是諸如表、樹(shù)和圖之類(lèi)的數(shù)據(jù)結(jié)構(gòu),因此,簡(jiǎn)單來(lái)說(shuō),數(shù)據(jù)結(jié)構(gòu)是一門(mén)研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象以及它們之間關(guān)系和操作等的學(xué)科,用一句話來(lái)說(shuō)就是,數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
研究對(duì)象:1、集合2、線性結(jié)構(gòu)3、樹(shù)形結(jié)構(gòu)4、圖狀結(jié)構(gòu)(網(wǎng)狀結(jié)構(gòu)) 結(jié)構(gòu)分類(lèi):1、數(shù)據(jù)的邏輯結(jié)構(gòu)2、數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)) 關(guān)系表示:1、順序映像2、非順序映像,兩者分別對(duì)應(yīng)為順序存儲(chǔ)結(jié)構(gòu)、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)二、算法和算法分析 1、算法的五個(gè)特性:有窮性、確定性、可行性、輸入和輸出 2、算法設(shè)計(jì)的要求:正確性、可讀性、健壯性以及效率與低存儲(chǔ)量需求 3、算法的度量:時(shí)間復(fù)雜度和空間復(fù)雜度 總結(jié):編寫(xiě)代碼設(shè)計(jì)算法時(shí)候首先先考慮算法的正確性,確保程序能夠滿足要求,在正確性的前提下再進(jìn)一步考慮算法的可讀性、健壯性、拓展性以及算法的效率等。第二章:線性表一、線性表的定義 線性結(jié)構(gòu)的特點(diǎn)是:在數(shù)據(jù)元素的非空有限集中(1)存在唯一的一個(gè)被稱(chēng)做“第一個(gè)”的數(shù)據(jù)元素;(2)存在唯一的一個(gè)被稱(chēng)做“最后一個(gè)”的數(shù)據(jù)元素;(3)除第一個(gè)之外,集合中每個(gè)數(shù)據(jù)元素均只有一個(gè)前驅(qū);(4)除最后一個(gè)元素之外,集合中每個(gè)數(shù)據(jù)元素均只有一個(gè)后繼。
線性表是最常用并且最簡(jiǎn)單的一種數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單來(lái)說(shuō),一個(gè)線性表是n個(gè)數(shù)據(jù)元素的有限序列。至于每個(gè)數(shù)據(jù)元素的具體含義,在不同的情況下各不相同,既可以是一個(gè)數(shù)也可以是一個(gè)符號(hào)等等。
二、線性表的操作 線性表是一個(gè)相當(dāng)靈活的數(shù)據(jù)結(jié)構(gòu),它的長(zhǎng)度可根據(jù)需要增長(zhǎng)或者縮短,即對(duì)線性表的數(shù)據(jù)元素不但可以進(jìn)行訪問(wèn),還可以進(jìn)行插入和刪除等操作。線性表存儲(chǔ)方式有兩種,順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ),下面通過(guò)代碼進(jìn)行簡(jiǎn)單模擬操作。
第三章:棧和隊(duì)列 棧和隊(duì)列是兩種重要的線性結(jié)構(gòu),從數(shù)據(jù)結(jié)構(gòu)的角度看,棧和隊(duì)列也是線性表,其特殊性在于棧和隊(duì)列的基本操作是線性表操作的子集,它們是操作受限制的線性表,因此可以稱(chēng)為限定性的數(shù)據(jù)結(jié)構(gòu)。一、棧的定義 棧是限定在表尾進(jìn)行插入或刪除操作的線性表,棧的特定是先進(jìn)后出。
棧的存儲(chǔ)方式有兩種,一種是順序棧另外一種是鏈?zhǔn)綏?,下面只通過(guò)代碼簡(jiǎn)單模擬棧的操作。二、棧的應(yīng)用 棧的應(yīng)用主要有數(shù)制轉(zhuǎn)換、括號(hào)匹配的檢驗(yàn)、迷宮問(wèn)題求解以及表達(dá)式求值。
另外棧遞歸實(shí)現(xiàn)的經(jīng)典例子有八皇后問(wèn)題、漢諾塔問(wèn)題等。三、隊(duì)列的定義 隊(duì)列和棧有點(diǎn)不同,隊(duì)列是一種先進(jìn)先出得線性表,它只能夠在表的一端進(jìn)行插入另外一頭進(jìn)行刪除操作。
隊(duì)列在程序設(shè)計(jì)中比較常見(jiàn)的例子是操作系統(tǒng)中的作業(yè)排隊(duì)。雙端隊(duì)列、循環(huán)隊(duì)列有時(shí)間再進(jìn)一步演進(jìn),暫時(shí)先了解些基本概念。
第四章:串一、串的定義 計(jì)算機(jī)上的非數(shù)值處理的對(duì)象基本上都是字符串?dāng)?shù)據(jù)。串是由零個(gè)或多個(gè)字符組成的有限序列。
串中字符的數(shù)目成為字符串的長(zhǎng)度,零個(gè)字符的串成為空串。串的模式匹配算法經(jīng)典的是KMP算法。
第五章:數(shù)組和廣義表一、數(shù)組和廣義表定義 數(shù)組是讀者已經(jīng)很熟悉的一種數(shù)據(jù)類(lèi)型,幾乎所有的程序設(shè)計(jì)語(yǔ)言都把數(shù)組類(lèi)型設(shè)為固有的類(lèi)型。數(shù)組的應(yīng)用中涉及到一個(gè)比較重要的數(shù)學(xué)知識(shí),矩陣的壓縮存儲(chǔ)問(wèn)題。
廣義表是線性表的推廣,在java開(kāi)發(fā)中好像用得不多,有時(shí)間再進(jìn)一步學(xué)習(xí)。 第六章:樹(shù)和二叉樹(shù)一、樹(shù)的定義和基本操作1、樹(shù)的特點(diǎn) 樹(shù)是一個(gè)結(jié)點(diǎn)n的有限集,在任意一顆樹(shù)非空樹(shù)中:1、有且只有一個(gè)根結(jié)點(diǎn),2、當(dāng)n>1時(shí),其余結(jié)點(diǎn)分為m(m>0)個(gè)互不相交的有限集,其中每個(gè)集合本身又是一棵樹(shù),叫做根的子樹(shù)。
關(guān)鍵詞組:有限集、唯一性、對(duì)稱(chēng)性、遞歸性。 基本術(shù)語(yǔ):結(jié)點(diǎn)、度、葉子、分支結(jié)點(diǎn)、孩子、雙親、兄弟、層次以及深度等。
基本操作:構(gòu)造初始化樹(shù)、取得左子樹(shù)或右子樹(shù)、插入結(jié)點(diǎn)、刪除結(jié)點(diǎn)、樹(shù)的遍歷等等。2、線性結(jié)構(gòu)VS樹(shù)結(jié)構(gòu) 線性結(jié)構(gòu)是一個(gè)“序列”,元素之間存在的是“一對(duì)一”的關(guān)系,而樹(shù)是一個(gè)層次結(jié)構(gòu),元素之間存在的是“一對(duì)多”的關(guān)系。
二、二叉樹(shù)的定義1、二叉樹(shù)的特點(diǎn) 每個(gè)結(jié)點(diǎn)至多只有二棵子樹(shù)(即二叉樹(shù)中不存在度大于2的結(jié)點(diǎn)),并且二叉樹(shù)的子樹(shù)有左右之分,其次序不能顛倒。 關(guān)鍵詞組:對(duì)稱(chēng)、次序2、二叉樹(shù)的具體實(shí)例 滿二叉樹(shù)、完全二叉樹(shù)、平衡二叉樹(shù)等,具體區(qū)別參考書(shū)籍教材詳解。
3、二叉樹(shù)的存儲(chǔ)結(jié)構(gòu) 主要分為兩種方式,一類(lèi)是順序結(jié)構(gòu)(可使用一組地址連續(xù)的存儲(chǔ)單元依次自上而下、自左至右存儲(chǔ)完全二叉樹(shù)上的結(jié)點(diǎn)元。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:3.190秒