1.計(jì)算機(jī)科學(xué)的兩大支柱:
1.數(shù)據(jù)結(jié)構(gòu)
2.算法
2.數(shù)據(jù)結(jié)構(gòu)定義:
一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和操作等等的學(xué)科。
數(shù)據(jù)(Data): 是對(duì)信息的一種符號(hào)表示。在計(jì)算機(jī)科學(xué)中是指所有能輸入到計(jì)算機(jī)中并被計(jì)算機(jī)程序處理的符號(hào)的總稱。
數(shù)據(jù)元素(Data Element): 是數(shù)據(jù)的基本單位,在計(jì)算機(jī)程序中通常作為一個(gè)整體進(jìn)行考慮和處理。
一個(gè)數(shù)據(jù)元素可由若干個(gè)數(shù)據(jù)項(xiàng)組成。數(shù)據(jù)項(xiàng)是數(shù)據(jù)的不可分割的最小單位。
數(shù)據(jù)結(jié)構(gòu)(Data Structure): 是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。
3.數(shù)據(jù)結(jié)構(gòu)主要指邏輯結(jié)構(gòu)和物理結(jié)構(gòu),數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本結(jié)構(gòu):
集合: 結(jié)構(gòu)中的數(shù)據(jù)元素除了同屬于一種類型外,別無(wú)其它關(guān)系。
線性結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一對(duì)一的關(guān)系。
樹型結(jié)構(gòu):結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一對(duì)多的關(guān)系。
圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu) : 結(jié)構(gòu)中的數(shù)據(jù)元素之間存在多對(duì)多的關(guān)系。
4.數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中有兩種不同的表示方法:
順序存儲(chǔ)結(jié)構(gòu): 用數(shù)據(jù)元素在存儲(chǔ)器中的相對(duì)位置來(lái)表示數(shù)據(jù)元素之間的邏輯關(guān)系。
鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):在每一個(gè)數(shù)據(jù)元素中增加一個(gè)存放地址的指針,用此指針來(lái)表示數(shù)據(jù)元素之間的邏輯關(guān)系。
5.數(shù)據(jù)對(duì)象:
某種數(shù)據(jù)類型元素的集合。
eg:整數(shù)的數(shù)據(jù)對(duì)象是{…-3,-2,-1,0,1,2,3,…}
英文字符類型的數(shù)據(jù)對(duì)象是{A,B,C,D,E,F(xiàn),…}
數(shù)據(jù)類型:在一種程序設(shè)計(jì)語(yǔ)言中,變量所具有的數(shù)據(jù)種類。
6.數(shù)據(jù)結(jié)構(gòu)的三個(gè)方面:
7.算法
用抽象的語(yǔ)言描述解決特定問(wèn)題的每一步的操作。程序是計(jì)算機(jī)能理解和執(zhí)行的指令序列。一個(gè)程序?qū)崿F(xiàn)一個(gè)算法。算法和程序的區(qū)別是算法的執(zhí)行是有窮的,而程序的執(zhí)行可以是無(wú)限的。
8.時(shí)間復(fù)雜度
9.
1、什么是集合
通常情況下,把具有相同性質(zhì)的一類東西,匯聚成一個(gè)整體,就可以稱為集合。比如,用Java編程的所有程序員,全體中國(guó)人等。
2、什么是集合框架
集合框架是為表示和操作集合而規(guī)定的一種統(tǒng)一的標(biāo)準(zhǔn)的體系結(jié)構(gòu)。任何集合框架都包含三大塊內(nèi)容:對(duì)外的接口、接口的實(shí)現(xiàn)和對(duì)集合運(yùn)算的算法。
3、集合框架對(duì)我們編程有何助益:
它減少了程序設(shè)計(jì)的辛勞、它提高了程序速度和質(zhì)量。
10. Collection 接口是一組允許重復(fù)的對(duì)象。
Set 接口繼承 Collection,但不允許重復(fù),使用自己內(nèi)部的一個(gè)排列機(jī)制。
List 接口繼承 Collection,允許重復(fù),以元素安插的次序來(lái)放置元素,不會(huì)重新排列。
Map接口是一組成對(duì)的鍵-值對(duì)象,即所持有的是key-value pairs。Map中不能有重復(fù)的key。擁有自己的內(nèi)部排列機(jī)制。
容器中的元素類型都為Object。從容器取得元素時(shí),必須把它轉(zhuǎn)換成原來(lái)的類型。
11. 遞歸:
若一個(gè)對(duì)象部分地包含它自己, 或用它自己給自己定義, 則稱這個(gè)對(duì)象是遞歸的;若一個(gè)過(guò)程直接地或間接地調(diào)用自己, 則稱這個(gè)過(guò)程是遞歸的過(guò)程。
12. 線性表:
線性表是由n(n≥0)個(gè)相同類型的數(shù)據(jù)元素a1,a2,…,an組成的有限序列,記作:LinearList={a1,a2,…,an}
其中,n表示線性表的元素個(gè)數(shù),稱為線性表的長(zhǎng)度。
13. 線性表的順序存儲(chǔ)結(jié)構(gòu):
是用一組連續(xù)的存儲(chǔ)單元順序存放線性表的數(shù)據(jù)元素,數(shù)據(jù)元素在內(nèi)存的物理存儲(chǔ)次序與它們?cè)诰€性表中的邏輯次序是一致的,即數(shù)據(jù)元素ai與其前驅(qū)數(shù)據(jù)元素ai-1及后繼數(shù)據(jù)元素ai+1的位置相鄰。
14.迭代器:
迭代器是允許以一致的方式對(duì)集合對(duì)象的元素進(jìn)行訪問(wèn)的對(duì)象。迭代器對(duì)象一旦發(fā)現(xiàn)另一個(gè)對(duì)象在結(jié)構(gòu)上修改這一集合,就馬上會(huì)報(bào)錯(cuò)。這是因?yàn)橐坏┠汩_始對(duì)一個(gè)ArrayList對(duì)象進(jìn)行迭代,就不能再修改這個(gè)ArrayList完整性。所以彈出 ConcurrentModificationException
審核編輯 :李倩
-
算法
+關(guān)注
關(guān)注
23文章
4710瀏覽量
95399 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
40751
原文標(biāo)題:編程基礎(chǔ)必學(xué):淺析數(shù)據(jù)結(jié)構(gòu)!你應(yīng)該沒(méi)有這樣了解過(guò)吧?
文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
同步電機(jī)失步淺析
SOLIDWORKS建模秘籍——必學(xué)的五個(gè)草圖與建模技巧

程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)
請(qǐng)問(wèn)K230D怎么將攝像頭采集的視頻數(shù)據(jù)通過(guò)串口輸出?
C語(yǔ)言中結(jié)構(gòu)體與聯(lián)合體的深度解析:內(nèi)存布局與應(yīng)用場(chǎng)景
工程師入門必學(xué)的二十個(gè)模擬電路
EtherCAT數(shù)據(jù)幀結(jié)構(gòu)解析
DDC264配置寄存器數(shù)據(jù)寫入和320 DCLK時(shí)鐘脈沖后的回讀數(shù)據(jù)結(jié)構(gòu)是什么?
視覺(jué)軟件HALCON的數(shù)據(jù)結(jié)構(gòu)

FPGA編程語(yǔ)言的入門教程
架構(gòu)師日記-從數(shù)據(jù)庫(kù)發(fā)展歷程到數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)探析

評(píng)論